UCommon
Static Public Member Functions | Protected Member Functions | Friends
ucommon::Conditional Class Reference

The conditional is a common base for other thread synchronizing classes. More...

#include <thread.h>

Inheritance diagram for ucommon::Conditional:
Inheritance graph
[legend]

Static Public Member Functions

static void gettimeout (timeout_t timeout, struct timespec *hires)
 Convert a millisecond timeout into use for high resolution conditional timers.
static pthread_condattr_t * initializer (void)
 Support function for getting conditional attributes for realtime scheduling.

Protected Member Functions

void broadcast (void)
 Signal the conditional to release all waiting threads.
 Conditional ()
 Initialize and construct conditional.
void lock (void)
 Lock the conditional's supporting mutex.
void signal (void)
 Signal the conditional to release one waiting thread.
void unlock (void)
 Unlock the conditional's supporting mutex.
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 wait (void)
 Wait (block) until signalled.
 ~Conditional ()
 Destroy conditional, release any blocked threads.

Friends

class ConditionalAccess
class TimedEvent

Detailed Description

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.

Author:
David Sugar dyfet.nosp@m.@gnu.nosp@m.telep.nosp@m.hony.nosp@m..org

Definition at line 86 of file thread.h.


Member Function Documentation

static void ucommon::Conditional::gettimeout ( timeout_t  timeout,
struct timespec *  hires 
) [static]

Convert a millisecond timeout into use for high resolution conditional timers.

Parameters:
timeoutto convert.
hirestimespec representation to fill.

Reimplemented in ucommon::ConditionalAccess.

static pthread_condattr_t* ucommon::Conditional::initializer ( void  ) [inline, static]

Support function for getting conditional attributes for realtime scheduling.

Returns:
attributes to use for creating realtime conditionals.

Definition at line 193 of file thread.h.

bool ucommon::Conditional::wait ( timeout_t  timeout) [protected]

Conditional wait for signal on millisecond timeout.

Parameters:
timeoutin milliseconds.
Returns:
true if signalled, false if timer expired.

Reimplemented in ucommon::Semaphore, and ucommon::barrier.

bool ucommon::Conditional::wait ( struct timespec *  timeout) [protected]

Conditional wait for signal on timespec timeout.

Parameters:
timeoutas a high resolution timespec.
Returns:
true if signalled, false if timer expired.

The documentation for this class was generated from the following file: