[OSy] Chovani mutexu
Viktor Masicek
cabadaj at gmail.com
Thu Nov 1 16:59:44 CET 2007
Dobry den.
Rovnou k veci. Mam mutex a vlakna A,B,C. Vlakno A zamkne mutex, B,C se
pokusi o zamknuti a zablokuji se. Co se stane, kdyz ted vlakno A umre?
(1) Nic, proste umre a vlakna B,C zustanou uspana naveky. Proste chyba
programatora, ze to tak blbe udelal.
(2) Pri zabijeni vlakna A se zavola 'mutrex_up' na zminovany mutex a
tim se napriklad B odblokuje a zablokovane zustane jen C. To by v
dusledku vyzadovalo drzet si seznam mutexu u kazdeho vlakna nebo
pripadne projit vsechny mutexy a porovnavat id killovaneho vlakna s
vlastnikem mutexu.
Podle me jsou obe reseni mozna. Pro obe varianty si dovedu predstavit
uplatneni z pohledu programatora pouzivajici me mutexy.
Co je tedy spravne?
Dekuji.
Viktor Masicek
More information about the NSWI004
mailing list