8#ifndef INCLUDED_BSLMT_CONDITIONIMPL_PTHREAD
9#define INCLUDED_BSLMT_CONDITIONIMPL_PTHREAD
84#include <bslscm_version.h>
93#ifdef BSLMT_PLATFORM_POSIX_THREADS
98#include <bsl_c_errno.h>
105template <
class THREAD_POLICY>
116class ConditionImpl<Platform::PosixThreads> {
119 pthread_cond_t d_cond;
126 ConditionImpl(
const ConditionImpl&);
127 ConditionImpl& operator=(
const ConditionImpl&);
133 enum { e_TIMED_OUT = -1 };
197 int wait(Mutex *mutex);
215ConditionImpl<bslmt::Platform::PosixThreads>::~ConditionImpl()
217 pthread_cond_destroy(&d_cond);
222void ConditionImpl<bslmt::Platform::PosixThreads>::broadcast()
224 pthread_cond_broadcast(&d_cond);
228void ConditionImpl<bslmt::Platform::PosixThreads>::signal()
230 pthread_cond_signal(&d_cond);
234int ConditionImpl<bslmt::Platform::PosixThreads>::wait(Mutex *mutex)
236 return pthread_cond_wait(&d_cond, &mutex->nativeMutex());
242ConditionImpl<bslmt::Platform::PosixThreads>::clockType()
const
Definition bsls_timeinterval.h:307
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
Definition bslmt_barrier.h:344
Enum
Definition bsls_systemclocktype.h:119
@ e_REALTIME
Definition bsls_systemclocktype.h:122