[OSy] Dealokovanie detached vlakna po normalnom skonceni
Petr Tuma
petr.tuma at d3s.mff.cuni.cz
Thu Nov 4 10:31:11 CET 2010
Dobry den,
neeeeee :) jednoduchy ale chybny program neni to, co jsem mel na mysli,
kdyz jsem rikal, ze je nekdy lepsi preferovat jednoduchy program pred
slozitym.
Samozrejme neni pripustne, aby se pouzivala pamet, ktera jiz byla
dealokovana (a mimochodem tohle jsou presne situace, kdy si muzete
prichystat neprijemne chvilky ladeni pozdejsich casti zadani).
Petr Tuma
On 11/04/2010 10:11 AM, Michal Klempa wrote:
> Zdravim,
> vlakno sa pocas behu stalo detached, jeho main { } normalne skonci. V
> takom pripade ma kernel uvolnit strukturu thread_t a pamat urcenu na
> stack vlakna.
>
> Prvy approach -> miesto main { } daj do panenskeho kontextu vlakna moju
> funkciu execute:
> execute {
> thread->main(thread->data);
> disable_int
> free(thread->stack);
> free(thread);
> schedule();
> }
>
> Tak na to pozeram a nechapem, co sa stane pri switch_cpu_context.
> Execute bezi v kontexte vlakna, ktore prave rusim, a ja pamat kde je
> tento kontext ulozim. Takze hoci ju uvolnim, ulozi tam
> switch_cpu_context este moj kontext ako by to ukladal na vrch zasobnika?
> Tu pamat nikto nestihne medzicasom pouzit... snad?
>
> Je toto ten easy approach, ktory ocakavate? Aby som zas nevymyslal
> hardcore veci:-)
>
> Dik. Michal Klempa
>
> _______________________________________________
> OSy mailing list
> OSy at d3s.mff.cuni.cz
> https://d3s.mff.cuni.cz/mailman/listinfo/osy
More information about the NSWI004
mailing list