60 virtual const char*
what()
const throw() {
return "Thread::RWLockError";}
103 pthread_rwlock_t pthr_rwlock;
143 int reader_lock() noexcept {
return pthread_rwlock_rdlock(&pthr_rwlock);}
180 int writer_lock() noexcept {
return pthread_rwlock_wrlock(&pthr_rwlock);}
212 int unlock() noexcept {
return pthread_rwlock_unlock(&pthr_rwlock);}
229 ~RWLock() {pthread_rwlock_destroy(&pthr_rwlock);}
444 int lock() noexcept {
int ret = rw_lock.
reader_lock();
if (!owner) owner = !ret;
return ret;}
482 int unlock() noexcept {
int ret = rw_lock.
unlock();
if (owner) owner = ret;
return ret;}
729 int lock() noexcept {
int ret = rw_lock.
writer_lock();
if (!owner) owner = !ret;
return ret;}
761 int unlock() noexcept {
int ret = rw_lock.
unlock();
if (owner) owner = ret;
return ret;}