67 virtual const char*
what()
const throw() {
return "Thread::CondError";}
75 #ifndef DOXYGEN_PARSING 76 struct CondSetClockError:
public std::exception {
77 virtual const char* what()
const throw() {
return "Thread::CondSetClockError";}
82 virtual const char*
what()
const throw() {
return "Thread::MutexError";}
86 virtual const char*
what()
const throw() {
return "Thread::RecMutexError";}
118 pthread_mutex_t pthr_mutex;
147 int lock() {
return pthread_mutex_lock(&pthr_mutex);}
157 int trylock() {
return pthread_mutex_trylock(&pthr_mutex);}
170 int unlock() {
return pthread_mutex_unlock(&pthr_mutex);}
187 ~Mutex() {pthread_mutex_destroy(&pthr_mutex);}
189 #ifdef CGU_USE_GLIB_MEMORY_SLICES_NO_COMPAT 363 int lock() {
int ret = mutex.
lock();
if (!owner) owner = !ret;
return ret;}
391 int unlock() {
int ret = mutex.
unlock();
if (owner) owner = ret;
return ret;}
472 int signal() {
return pthread_cond_signal(&cond);}
508 int wait(
Mutex& mutex) {
return pthread_cond_wait(&cond, &mutex.pthr_mutex);}
559 return pthread_cond_timedwait(&cond, &mutex.pthr_mutex, &abs_time);
569 const timespec& abs_time) {
return timed_wait(lock.mutex, abs_time);}
578 const timespec& abs_time) {
return timed_wait(lock.mutex, abs_time);}
595 static void get_abs_time(timespec& ts,
unsigned int millisec);
633 ~Cond(
void) {pthread_cond_destroy(&cond);}
673 pthread_mutex_t pthr_mutex;
703 int lock() {
return pthread_mutex_lock(&pthr_mutex);}
720 int trylock() {
return pthread_mutex_trylock(&pthr_mutex);}
735 int unlock() {
return pthread_mutex_unlock(&pthr_mutex);}
983 int lock() {
int ret = mutex.
lock();
if (!owner) owner = !ret;
return ret;}
1022 int unlock() {
int ret = mutex.
unlock();
if (owner) owner = ret;
return ret;}
1098 GStaticRecMutex& mutex;
1116 GStaticRecMutex*
get()
const {
return &mutex;}
int broadcast()
Definition: mutex.h:483
int unlock()
Definition: mutex.h:1022
int trylock()
Definition: mutex.h:376
bool is_owner() const
Definition: mutex.h:1030
RecMutex::Lock & operator=(const RecMutex::Lock &)=delete
int trylock()
Definition: mutex.h:859
TrackLock(RecMutex &mutex_, DeferLock tag)
Definition: mutex.h:1061
virtual const char * what() const
Definition: mutex.h:82
int timed_wait(Mutex::Lock &lock, const timespec &abs_time)
Definition: mutex.h:568
Mutex & operator=(const Mutex &)=delete
int unlock()
Definition: mutex.h:391
A scoped locking class for exception safe RecMutex locking which tracks the status of its mutex...
Definition: mutex.h:949
static int test_support()
int lock()
Definition: mutex.h:983
int trylock()
Definition: mutex.h:720
TrackLock(Mutex &mutex_, DeferLock tag)
Definition: mutex.h:424
int signal()
Definition: mutex.h:472
A wrapper class for pthread condition variables.
Definition: mutex.h:449
~Lock()
Definition: mutex.h:305
int lock()
Definition: mutex.h:240
~TrackLock()
Definition: mutex.h:1075
int unlock()
Definition: mutex.h:735
A scoped locking class for exception safe RecMutex locking.
Definition: mutex.h:802
int lock()
Definition: mutex.h:363
int timed_wait(Mutex::TrackLock &lock, const timespec &abs_time)
Definition: mutex.h:577
static void get_abs_time(timespec &ts, unsigned int millisec)
static bool have_monotonic_clock()
virtual const char * what() const
Definition: mutex.h:67
RecMutex::TrackLock & operator=(const RecMutex::TrackLock &)=delete
A scoped locking class for exception safe Mutex locking.
Definition: mutex.h:207
int lock()
Definition: mutex.h:836
Mutex::Lock & operator=(const Mutex::Lock &)=delete
Lock(RecMutex &mutex_, Locked tag)
Definition: mutex.h:908
~TrackLock()
Definition: mutex.h:436
Lock(RecMutex &mutex_)
Definition: mutex.h:899
int unlock()
Definition: mutex.h:886
int timed_wait(Mutex &mutex, const timespec &abs_time)
Definition: mutex.h:558
A wrapper class for pthread mutexes.
Definition: mutex.h:117
int unlock()
Definition: mutex.h:170
TrackLock(RecMutex &mutex_)
Definition: mutex.h:1043
int lock()
Definition: mutex.h:703
virtual const char * what() const
Definition: mutex.h:86
GrecmutexLock & operator=(const GrecmutexLock &)=delete
Mutex()
Definition: mutex.h:179
int unlock()
Definition: mutex.h:277
Definition: application.h:44
int trylock()
Definition: mutex.h:255
A scoped locking class for exception safe Mutex locking which tracks the status of its mutex...
Definition: mutex.h:331
Lock(Mutex &mutex_, Locked tag)
Definition: mutex.h:293
bool is_owner() const
Definition: mutex.h:399
TrackLock(Mutex &mutex_, Locked tag)
Definition: mutex.h:415
Locked
Definition: mutex.h:196
DeferLock
Definition: mutex.h:199
A scoped locking class for exception safe locking of GStaticRecMutex objects.
Definition: mutex.h:1097
int wait(Mutex::TrackLock &lock)
Definition: mutex.h:522
int trylock()
Definition: mutex.h:157
~Cond(void)
Definition: mutex.h:633
TrackLock(RecMutex &mutex_, Locked tag)
Definition: mutex.h:1052
RecMutex & operator=(const RecMutex &)=delete
TrackLock(Mutex &mutex_)
Definition: mutex.h:406
A wrapper class for pthread mutexes which provides a recursive mutex.
Definition: mutex.h:672
~RecMutex()
Definition: mutex.h:789
Mutex::TrackLock & operator=(const Mutex::TrackLock &)=delete
int lock()
Definition: mutex.h:147
int trylock()
Definition: mutex.h:1005
int wait(Mutex::Lock &lock)
Definition: mutex.h:515
Lock(Mutex &mutex_)
Definition: mutex.h:284
#define CGU_GLIB_MEMORY_SLICES_FUNCS
Definition: cgu_config.h:84
Cond & operator=(const Cond &)=delete
~Mutex()
Definition: mutex.h:187
GrecmutexLock(GStaticRecMutex &mutex_, Locked tag)
Definition: mutex.h:1135
~Lock()
Definition: mutex.h:921
int wait(Mutex &mutex)
Definition: mutex.h:508