1 #ifndef _sys_posix_Mutex_h
2 #define _sys_posix_Mutex_h
25 #include <boost/noncopyable.hpp>
35 class Mutex :
private boost::noncopyable {
37 static const pthread_mutexattr_t* getAttribute();
57 class RWlock :
private boost::noncopyable {
93 #define QPID_MUTEX_INITIALIZER { PTHREAD_MUTEX_INITIALIZER }
104 return pthread_mutex_trylock(&
mutex) == 0;
124 return pthread_mutex_trylock(&
mutex) == 0;
A condition variable for thread synchronization.
#define QPID_POSIX_ASSERT_THROW_IF(ERRNO)
Same as _THROW_IF in a release build, but abort a debug build.
::qpid::sys::ScopedRlock< RWlock > ScopedRlock
::qpid::sys::ScopedWlock< RWlock > ScopedWlock
::qpid::sys::ScopedLock< PODMutex > ScopedLock
::qpid::sys::ScopedUnlock< Mutex > ScopedUnlock
PODMutex is a POD, can be static-initialized with PODMutex m = QPID_PODMUTEX_INITIALIZER.
#define QPID_POSIX_ABORT_IF(ERRNO)
::qpid::sys::ScopedLock< Mutex > ScopedLock