[OSy] Chovani mutexu
Dalibor Straka
dast at panelnet.cz
Thu Nov 1 17:08:27 CET 2007
Ahoj,
On Thu, Nov 01, 2007 at 04:59:44PM +0100, Viktor Masicek wrote:
> 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.
>
Podle me je toto spravne chovani. Jedina mozna akce, kterou lze jeste
udelat je zabit programatora.
> (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.
>
Bohuzel clovek nevi v jake fazi rozvrtani struktur A vyhnilo. Pokud
vlakno skonci s uzavrenym mutexem, jeste lze panic() a cely to zastavit.
-- Dalibor Straka
More information about the NSWI004
mailing list