#include <thread.h>
Public Member Functions | |
Conditional (const char *id=NULL) | |
Create an instance of a conditional. | |
virtual | ~Conditional () |
Destroy the conditional. | |
void | signal (bool broadcast) |
Signal a conditional object and a waiting threads. | |
bool | wait (timeout_t timer=0, bool locked=false) |
Wait to be signaled from another thread. | |
void | enterMutex (void) |
Locks the conditional's mutex for this thread. | |
void | lock (void) |
In the future we will use lock in place of enterMutex since the conditional composite is not a recursive mutex, and hence using enterMutex may cause confusion in expectation with the behavior of the Mutex class. | |
bool | tryEnterMutex (void) |
Tries to lock the conditional for the current thread. | |
bool | test (void) |
void | leaveMutex (void) |
Leaving a mutex frees that mutex for use by another thread. | |
void | unlock (void) |
Conditional variables may wait for and receive signals to notify when to resume or perform operations. Multiple waiting threads may be woken with a broadcast signal.
ost::Conditional::Conditional | ( | const char * | id = NULL |
) |
Create an instance of a conditional.
id | name of conditional, optional for deadlock testing. |
virtual ost::Conditional::~Conditional | ( | ) | [virtual] |
Destroy the conditional.
void ost::Conditional::enterMutex | ( | void | ) |
Locks the conditional's mutex for this thread.
Remember that Conditional's mutex is NOT a recursive mutex!
void ost::Conditional::leaveMutex | ( | void | ) |
void ost::Conditional::lock | ( | void | ) | [inline] |
In the future we will use lock in place of enterMutex since the conditional composite is not a recursive mutex, and hence using enterMutex may cause confusion in expectation with the behavior of the Mutex class.
void ost::Conditional::signal | ( | bool | broadcast | ) |
Signal a conditional object and a waiting threads.
broadcast | this signal to all waiting threads if true. |
bool ost::Conditional::test | ( | void | ) | [inline] |
bool ost::Conditional::tryEnterMutex | ( | void | ) |
Tries to lock the conditional for the current thread.
Behaves like enterMutex , except that it doesn't block the calling thread.
void ost::Conditional::unlock | ( | void | ) | [inline] |
bool ost::Conditional::wait | ( | timeout_t | timer = 0 , |
|
bool | locked = false | |||
) |
Wait to be signaled from another thread.
timer | time period to wait. | |
locked | flag if already locked the mutex. |