[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