Condition
Tato třída reprezentuje podmíněnou proměnnou. Podmíněná proměnná je
spojená s mutexem, který chrání přístup ke
sdíleným datům, a zároveň obsahuje booleovský predikát (metodu), jenž
určuje, zda jsou data v konzistentním stavu.
Class was derived from: Mutex

-
Broadcast(void)
- Uvolní všechny vlákna čekající na podmíněnou proměnnou.
-
Signal(void)
- Uvolní alespoň jedno vlákno čekající na podmíněnou proměnnou.
-
Wait(void)
- Volající vlákno bude čekat, až bude splněna podmínka daná touto proměnnou.
-
TimedWait(const struct timespec *delta)
- Volající vlákno bude čekat, až bude splněna podmínka daná touto
proměnnou, nejdéle však daný časový interval.
-
Wait(unsigned long)
- Volající vlákno bude čekat, až bude splněna podmínka daná touto
proměnnou, nejdéle však daný časový interval.
-
isReady(void)
- Booleovská funkce vracející hodnotu dané podmínky.

-
Broadcast
int Broadcast(void)
Tato metoda odblokuje všechna vlákna čekající na danou podmíněnou
proměnnou. Každé vlákno, které mění hodnotu predikátu, by mělo volat
Signal() nebo Broadcast().
-
Signal
int Signal(void)
Metoda odblokuje alespoň jedno vlákno čekající na danou podmíněnou proměnnou.
-
Wait
int Wait(void)
Tato metoda zablokuje volající vlákno do doby, než bude na danou
podmíněnou proměnnou volán Broadcast() nebo
Signal(). Po odblokování vlákna metoda zkontroluje hodnotu
predikátu (vlákno může být ve zvláštním případě odblokováno i bez
signalizace podmíněné proměnné) a v případě, že data nejsou v
konzistentním stavu, vlákno se opět zablokuje a čeká na další
Broadcast() nebo Signal() (respektive odblokování).
-
TimedWait
int TimedWait(const struct timespec *delta)
Stejně jako Wait(), ale čeká pouze specifikovanou dobu.
-
Wait
int Wait(unsigned long)
-
-
isReady
bool isReady(void)
Vyhodnocuje hodnotu daného predikátu. Zde jako default vrací true.
Michal Voců