The conditional is a common base for other thread synchronizing classes. More...
#include <thread.h>
Static Public Member Functions | |
static pthread_condattr_t * | initializer (void) |
Support function for getting conditional attributes for realtime scheduling. | |
static void | gettimeout (timeout_t timeout, struct timespec *hires) |
Convert a millisecond timeout into use for high resolution conditional timers. | |
Protected Member Functions | |
bool | wait (timeout_t timeout) |
Conditional wait for signal on millisecond timeout. | |
bool | wait (struct timespec *timeout) |
Conditional wait for signal on timespec timeout. | |
void | lock (void) |
Lock the conditional's supporting mutex. | |
void | unlock (void) |
Unlock the conditional's supporting mutex. | |
void | wait (void) |
Wait (block) until signalled. | |
void | signal (void) |
Signal the conditional to release one waiting thread. | |
void | broadcast (void) |
Signal the conditional to release all waiting threads. | |
Conditional () | |
Initialize and construct conditional. | |
~Conditional () | |
Destroy conditional, release any blocked threads. | |
Friends | |
class | ConditionalAccess |
class | TimedEvent |
The conditional is a common base for other thread synchronizing classes.
Many of the complex sychronization objects, including barriers, semaphores, and various forms of read/write locks are all built from the conditional. This assures that the minimum functionality to build higher order thread synchronizing objects is a pure conditional, and removes dependencies on what may be optional features or functions that may have different behaviors on different pthread implimentations and platforms.
Definition at line 70 of file thread.h.
static void ucc::Conditional::gettimeout | ( | timeout_t | timeout, | |
struct timespec * | hires | |||
) | [static] |
Convert a millisecond timeout into use for high resolution conditional timers.
timeout | to convert. | |
hires | timespec representation to fill. |
Reimplemented in ucc::ConditionalAccess.
static pthread_condattr_t* ucc::Conditional::initializer | ( | void | ) | [inline, static] |
bool ucc::Conditional::wait | ( | struct timespec * | timeout | ) | [protected] |
Conditional wait for signal on timespec timeout.
timeout | as a high resolution timespec. |
bool ucc::Conditional::wait | ( | timeout_t | timeout | ) | [protected] |
Conditional wait for signal on millisecond timeout.
timeout | in milliseconds. |
Reimplemented in ucc::barrier, and ucc::semaphore.