[OSy] thread_wakeup
Martin Decky
decky at nenya.ms.mff.cuni.cz
Fri Nov 10 11:58:28 CET 2006
> Druha moznost, ktera me napadla, je vratit z thread_wakeup chybovy kod,
> pokud se jedna o pokus probudit vlakno na synchronizacnim primitivu.
> Probouzeneho vlakna by se to pak nijak nedotklo. Jaky je Vas nazor na takovou moznost? Je to
> tak napriklad nekde implementovano?
Na otazku, zda je to tak nekde implementovano, nedovedu rychle
odpovedet, takove detaily z konkretnich implementaci synchronizacnich
primitiv z ruznych kernelu si nepamatuji.
Na druhou stranu, smysl thread_wakeup() je prave probudit vlakno
cekajici na synchronizacnim primitivu (ovsem v dobe, kdy jine vlakno
kritickou sekci opousti). Pokud ztotoznite test, zda muze byt vlakno
probuzeno, s testem, zda skutecne muze do kriticke sekce, musite to
udelat atomicky, jinak hrozi race condition.
Na prvni pohled se mi zda, ze je pomerne slozite udelat to spravne,
zatimco ta standardni varianta je primocara.
M.D.
More information about the NSWI004
mailing list