[OSy] Dealokovanie detached vlakna po normalnom skonceni

Michal Klempa michal.klempa at gmail.com
Thu Nov 4 10:11:06 CET 2010


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




More information about the NSWI004 mailing list