[OSy] join_timeout() s 0 timeoutem

Petr Tuma petr.tuma at dsrg.mff.cuni.cz
Wed Oct 31 19:26:29 CET 2007


Dobry den,

> V tomto pripade tedy ceka NEJDELE 0 mikrosekund, coz bych oznacila
> ekvivalenti vyrazu "neceka".
> 
> Tedy prijde mi spravne, kdykoliv timeout = 0 (a identifikace vlakna
> je platna), tak muze join_timeout() vratit okamzite ETIMEOUT, protoze
> pred koncem intervalu delky 0 se opravdu nelze konce zadneho vlakna
> "dockat".

To by jiste byla jedna mozna interpretace. Napadla by vas i jina 
interpretace, ktera by davala vetsi smysl ?

> [V momente, kdy navic thread_b dobehne, uz neni platna ani jeho
> identifikace v join_timeout(), jelikoz uz toto vlakno neni (a nikdo
> na nej necekal, takze opravdu neni ani jako zombie) a tedy opet se
> nevrati EOK, ale EINVAL.]

To, jestli se vlakno stane zombie nebo ne, nezalezi na tom, jestli na 
nej zrovna nekdo ceka nebo ne (zvazte to - pokud nemuzete ovlivnit 
vzajemnou rychlost behu vlaken, pak by se bez extra synchronizace 
vlastne vzdycky mohlo stat, ze odstartovane vlakno skonci drive, nez na 
nej stihnete zavolat join).

Petr Tuma





More information about the NSWI004 mailing list