[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