Dokumentacja klasy common::Cond
[Moduł Threads]

Zmienna warunkowa. Więcej...

#include <Threads.hpp>

Lista wszystkich składowych.

Metody publiczne

 Cond ()
 ~Cond ()
void Wait (Mutex *m)
 Odblokowuje muteks, zawiesza wątek czekając na sygnał, po doczekaniu się blokuje muteks z powrotem.
bool TimeoutWait (Mutex *m, uint Milliseconds)
 Odblokowuje muteks, zawiesza wątek czekając na sygnał przez co najwyżej podany czas, po doczekaniu się blokuje muteks z powrotem.
void Signal ()
 Odwiesza przypadkowy jeden czekający wątek.
void Broadcast ()
 Odwiesza wszystkie czekające wątki.


Opis szczegółowy

Zmienna warunkowa.

Nie pamięta żadnego swojego stanu. Pozwala za to zawiesić wątek żeby na niej poczekał (Wait()) oraz wznowić niezdefiniowany jeden (Signal()) lub wszystkie (Broadcast()) czekające na niej wątki. Sensu nabiera dopiero kiedy zrozumie się sposób jej użycia w kontekście wzorca monitora do sprawdzania warunku.


Dokumentacja konstruktora i destruktora

common::Cond::Cond (  ) 

common::Cond::~Cond (  ) 


Dokumentacja funkcji składowych

void common::Cond::Wait ( Mutex *  m  ) 

Odblokowuje muteks, zawiesza wątek czekając na sygnał, po doczekaniu się blokuje muteks z powrotem.

Muteks m musi być zablokowany w chwili tego wywołania.

bool common::Cond::TimeoutWait ( Mutex *  m,
uint  Milliseconds 
)

Odblokowuje muteks, zawiesza wątek czekając na sygnał przez co najwyżej podany czas, po doczekaniu się blokuje muteks z powrotem.

  • Jeśli w tym czasie nastąpiło przerwanie czekania przez sygnał, zwraca true.
  • Muteks m musi być zablokowany w chwili tego wywołania.

void common::Cond::Signal (  ) 

Odwiesza przypadkowy jeden czekający wątek.

  • Jeśli żaden wątek nie czeka, nie robi nic.
  • Nie jest wymagane żeby jakiś muteks musiał być zablokowany w chwili tego wywołania.

void common::Cond::Broadcast (  ) 

Odwiesza wszystkie czekające wątki.

  • Jeśli żaden wątek nie czeka, nie robi nic.
  • Nie jest wymagane żeby jakiś muteks musiał być zablokowany w chwili tego wywołania.


Dokumentacja dla tej klasy została wygenerowana z pliku:

Wygenerowano Sat Mar 29 18:17:03 2008 dla CommonLib programem  doxygen 1.5.5