45 pthread_rwlock_rdlock (&_rw_lock);
49 return 0 == pthread_rwlock_tryrdlock (&_rw_lock);
53 pthread_rwlock_unlock (&_rw_lock);
58 pthread_rwlock_wrlock (&_rw_lock);
62 return 0 == pthread_rwlock_trywrlock (&_rw_lock);
66 pthread_rwlock_unlock (&_rw_lock);
84 _rwlock.reader_lock ();
90 _locked = _rwlock.reader_trylock ();
96 _rwlock.reader_unlock ();
121 _rwlock.writer_lock ();
127 _locked = _rwlock.writer_trylock ();
133 _rwlock.writer_unlock ();
ReaderLock(RWLock &rwlock, RWLock::LockFlags m=Lock)
ReaderLock(RWLock::ReaderLock const &)=delete
WriterLock(RWLock &rwlock, RWLock::LockFlags m=Lock)
WriterLock(RWLock::WriterLock const &)=delete
pthread_rwlock_t _rw_lock
RWLock(const RWLock &)=delete