[OSy] mutexy
Vladislav Kozák
dado at kozak.sk
Wed Oct 31 19:30:17 CET 2007
Dobry vecer,
mam drobne problemy s pochopenim funkcie mutexov (hlavne
mutex_lock_timeout) tak ako su popisane v zadani.
Povedzme, ze vlakno A zamklo mutex a do fronty cakatelov sa zaradili
vlakna B,C,D (pricom C bude cakat iba 100ms). Po 50ms vlakno A odomkne
dany mutex (co podla zadania znamena, ze vlakna B,C,D sa zobudia a zacnu
bojovat o to, ktore z nich prve zamkne mutex). Nie je mi dost jasne, ako
dokazeme zistit, ci to dane vlakno stihne este zamknut.
Specialne teda: niekde v kode funkcie mutex_lock_timeout sa vola
thread_sleep(usec). Za tento prikaz sa dostane vlakno po tom, co vyprsi
cas, alebo doslo k mutex_unlock. Ak vyprsal cas, je jasne, ze vratime
ETIMEDOUT. Ak ale este nevyprsal, nedokazeme podla mna rozhodnut v danom
volani funkcie mutex_lock_timeout, ci to este to vlakno stihne, a teda ani
rozhodnut aku navratovu hodnotu ma mat funkcia...
... alebo som to pochopil zle?
More information about the NSWI004
mailing list