#include <Condition_Thread_Mutex.h>
Collaboration diagram for ACE_Condition_Thread_Mutex:
Public Member Functions | |
ACE_Condition_Thread_Mutex (const ACE_Thread_Mutex &m, const ACE_TCHAR *name=0, void *arg=0) | |
Initialize the condition variable. | |
ACE_Condition_Thread_Mutex (const ACE_Thread_Mutex &m, ACE_Condition_Attributes &attributes, const ACE_TCHAR *name=0, void *arg=0) | |
Initialize the condition variable. | |
~ACE_Condition_Thread_Mutex (void) | |
Implicitly destroy the condition variable. | |
int | remove (void) |
int | wait (const ACE_Time_Value *abstime) |
int | wait (void) |
Block on condition. | |
int | wait (ACE_Thread_Mutex &mutex, const ACE_Time_Value *abstime=0) |
int | signal (void) |
Signal one waiting thread. | |
int | broadcast (void) |
Signal *all* waiting threads. | |
ACE_Thread_Mutex & | mutex (void) |
Returns a reference to the underlying mutex;. | |
void | dump (void) const |
Dump the state of an object. | |
Public Attributes | |
ACE_ALLOC_HOOK_DECLARE | |
Declare the dynamic allocation hooks. | |
Protected Attributes | |
ACE_cond_t | cond_ |
Condition variable. | |
ACE_Thread_Mutex & | mutex_ |
Reference to mutex lock. | |
int | removed_ |
Private Member Functions | |
void | operator= (const ACE_Condition_Thread_Mutex &) |
ACE_Condition_Thread_Mutex (const ACE_Condition_Thread_Mutex &) |
This should be an instantiation of ACE_Condition but problems with compilers precludes this...
ACE_Condition_Thread_Mutex::ACE_Condition_Thread_Mutex | ( | const ACE_Thread_Mutex & | m, | |
const ACE_TCHAR * | name = 0 , |
|||
void * | arg = 0 | |||
) |
Initialize the condition variable.
ACE_Condition_Thread_Mutex::ACE_Condition_Thread_Mutex | ( | const ACE_Thread_Mutex & | m, | |
ACE_Condition_Attributes & | attributes, | |||
const ACE_TCHAR * | name = 0 , |
|||
void * | arg = 0 | |||
) |
Initialize the condition variable.
ACE_Condition_Thread_Mutex::~ACE_Condition_Thread_Mutex | ( | void | ) |
Implicitly destroy the condition variable.
ACE_Condition_Thread_Mutex::ACE_Condition_Thread_Mutex | ( | const ACE_Condition_Thread_Mutex & | ) | [private] |
int ACE_Condition_Thread_Mutex::broadcast | ( | void | ) |
Signal *all* waiting threads.
ACE_BEGIN_VERSIONED_NAMESPACE_DECL void ACE_Condition_Thread_Mutex::dump | ( | void | ) | const |
Dump the state of an object.
ACE_INLINE ACE_Thread_Mutex & ACE_Condition_Thread_Mutex::mutex | ( | void | ) |
Returns a reference to the underlying mutex;.
void ACE_Condition_Thread_Mutex::operator= | ( | const ACE_Condition_Thread_Mutex & | ) | [private] |
ACE_INLINE int ACE_Condition_Thread_Mutex::remove | ( | void | ) |
Explicitly destroy the condition variable. Note that only one thread should call this method since it doesn't protect against race conditions.
int ACE_Condition_Thread_Mutex::signal | ( | void | ) |
Signal one waiting thread.
int ACE_Condition_Thread_Mutex::wait | ( | ACE_Thread_Mutex & | mutex, | |
const ACE_Time_Value * | abstime = 0 | |||
) |
Block on condition or until absolute time-of-day has passed. If abstime == 0 use "blocking" wait() semantics on the <mutex> passed as a parameter (this is useful if you need to store the <Condition> in shared memory). Else, if <abstime> != 0 and the call times out before the condition is signaled <wait> returns -1 and sets errno to ETIME.
int ACE_Condition_Thread_Mutex::wait | ( | void | ) |
Block on condition.
int ACE_Condition_Thread_Mutex::wait | ( | const ACE_Time_Value * | abstime | ) |
Block on condition, or until absolute time-of-day has passed. If abstime == 0 use "blocking" <wait> semantics. Else, if <abstime> != 0 and the call times out before the condition is signaled <wait> returns -1 and sets errno to ETIME.
Declare the dynamic allocation hooks.
ACE_cond_t ACE_Condition_Thread_Mutex::cond_ [protected] |
Condition variable.
ACE_Thread_Mutex& ACE_Condition_Thread_Mutex::mutex_ [protected] |
Reference to mutex lock.
int ACE_Condition_Thread_Mutex::removed_ [protected] |
Keeps track of whether <remove> has been called yet to avoid multiple <remove> calls, e.g., explicitly and implicitly in the destructor. This flag isn't protected by a lock, so make sure that you don't have multiple threads simultaneously calling <remove> on the same object, which is a bad idea anyway...