[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