60 virtual const char*
what()
const throw() {
return "Thread::RWLockError";}
104 pthread_rwlock_t pthr_rwlock;
144 int reader_lock() noexcept {
return pthread_rwlock_rdlock(&pthr_rwlock);}
181 int writer_lock() noexcept {
return pthread_rwlock_wrlock(&pthr_rwlock);}
213 int unlock() noexcept {
return pthread_rwlock_unlock(&pthr_rwlock);}
230 ~RWLock() {pthread_rwlock_destroy(&pthr_rwlock);}
445 int lock() noexcept {
int ret = rw_lock.
reader_lock();
if (!owner) owner = !ret;
return ret;}
483 int unlock() noexcept {
int ret = rw_lock.
unlock();
if (owner) owner = ret;
return ret;}
730 int lock() noexcept {
int ret = rw_lock.
writer_lock();
if (!owner) owner = !ret;
return ret;}
762 int unlock() noexcept {
int ret = rw_lock.
unlock();
if (owner) owner = ret;
return ret;}
int lock() noexcept
Definition: rw_lock.h:730
WriterTrackLock(RWLock &rw_lock_) noexcept
Definition: rw_lock.h:778
A scoped locking class for exception safe RWLock read locking.
Definition: rw_lock.h:243
~ReaderLock()
Definition: rw_lock.h:376
WriterTrackLock(RWLock &rw_lock_, DeferLock tag) noexcept
Definition: rw_lock.h:798
int lock() noexcept
Definition: rw_lock.h:445
RWLock()
Definition: rw_lock.h:224
ReaderLock(RWLock &rw_lock_)
Definition: rw_lock.h:353
A wrapper class for pthread read-write locks.
Definition: rw_lock.h:103
int writer_trylock() noexcept
Definition: rw_lock.h:192
~WriterTrackLock()
Definition: rw_lock.h:811
bool is_owner() const noexcept
Definition: rw_lock.h:771
int unlock() noexcept
Definition: rw_lock.h:213
int trylock() noexcept
Definition: rw_lock.h:745
RWLock::WriterLock & operator=(const RWLock::WriterLock &)=delete
int lock() noexcept
Definition: rw_lock.h:596
RWLock & operator=(const RWLock &)=delete
A scoped locking class for exception safe RWLock read locking which tracks the status of its read-wri...
Definition: rw_lock.h:406
RWLock::WriterTrackLock & operator=(const RWLock::WriterTrackLock &)=delete
ReaderTrackLock(RWLock &rw_lock_, Locked tag) noexcept
Definition: rw_lock.h:523
WriterLock(RWLock &rw_lock_, Locked tag) noexcept
Definition: rw_lock.h:654
~RWLock()
Definition: rw_lock.h:230
int trylock() noexcept
Definition: rw_lock.h:465
int unlock() noexcept
Definition: rw_lock.h:483
int unlock() noexcept
Definition: rw_lock.h:762
RWLock::ReaderLock & operator=(const RWLock::ReaderLock &)=delete
virtual const char * what() const
Definition: rw_lock.h:60
int trylock() noexcept
Definition: rw_lock.h:307
ReaderTrackLock(RWLock &rw_lock_, DeferLock tag) noexcept
Definition: rw_lock.h:533
RWLock::ReaderTrackLock & operator=(const RWLock::ReaderTrackLock &)=delete
int writer_lock() noexcept
Definition: rw_lock.h:181
int unlock() noexcept
Definition: rw_lock.h:334
~ReaderTrackLock()
Definition: rw_lock.h:547
Provides wrapper classes for pthread mutexes and condition variables, and scoped locking classes for ...
Definition: application.h:44
int reader_lock() noexcept
Definition: rw_lock.h:144
Locked
Definition: mutex.h:196
DeferLock
Definition: mutex.h:199
ReaderLock(RWLock &rw_lock_, Locked tag) noexcept
Definition: rw_lock.h:364
WriterLock(RWLock &rw_lock_) noexcept
Definition: rw_lock.h:644
A scoped locking class for exception safe RWLock write locking.
Definition: rw_lock.h:560
A scoped locking class for exception safe RWLock write locking which tracks the status of its read-wr...
Definition: rw_lock.h:694
ReaderTrackLock(RWLock &rw_lock_)
Definition: rw_lock.h:512
int trylock() noexcept
Definition: rw_lock.h:612
int lock() noexcept
Definition: rw_lock.h:284
bool is_owner() const noexcept
Definition: rw_lock.h:493
int reader_trylock() noexcept
Definition: rw_lock.h:163
#define CGU_GLIB_MEMORY_SLICES_FUNCS
Definition: cgu_config.h:84
WriterTrackLock(RWLock &rw_lock_, Locked tag) noexcept
Definition: rw_lock.h:788
~WriterLock()
Definition: rw_lock.h:666
int unlock() noexcept
Definition: rw_lock.h:637