[#BloombergLP-bslmt-ReaderWriterMutex] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslmt.adoc[bslmt]::ReaderWriterMutex :relfileprefix: ../../ :mrdocs: This class provides a multi‐reader/single‐writer lock mechanism. == Synopsis Declared in `<bslmt_readerwritermutex.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class ReaderWriterMutex; ---- == Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslmt/ReaderWriterMutex/2constructor.adoc[`ReaderWriterMutex`] [.small]#[constructor]# | Construct a reader/writer lock initialized to an unlocked state. | xref:BloombergLP/bslmt/ReaderWriterMutex/isLocked.adoc[`isLocked`] | Return `true` if this reader‐write mutex is currently read locked or write locked, and `false` otherwise. | xref:BloombergLP/bslmt/ReaderWriterMutex/isLockedRead.adoc[`isLockedRead`] | Return `true` if this reader‐write mutex is currently read locked, and `false` otherwise. | xref:BloombergLP/bslmt/ReaderWriterMutex/isLockedWrite.adoc[`isLockedWrite`] | Return `true` if this reader‐write mutex is currently write locked, and `false` otherwise. | xref:BloombergLP/bslmt/ReaderWriterMutex/lockRead.adoc[`lockRead`] | Lock this reader‐writer mutex for reading. If there are no active or pending write locks, lock this mutex for reading and return immediately. Otherwise, block until the read lock on this mutex is acquired. Use `unlockRead` or `unlock` to release the lock on this mutex. The behavior is undefined if this method is called from a thread that already has a lock on this mutex. | xref:BloombergLP/bslmt/ReaderWriterMutex/lockWrite.adoc[`lockWrite`] | Lock this reader‐writer mutex for writing. If there are no active or pending locks on this mutex, lock this mutex for writing and return immediately. Otherwise, block until the write lock on this mutex is acquired. Use `unlockWrite` or `unlock` to release the lock on this mutex. The behavior is undefined if this method is called from a thread that already has a lock on this mutex. | xref:BloombergLP/bslmt/ReaderWriterMutex/tryLockRead.adoc[`tryLockRead`] | Attempt to lock this reader‐writer mutex for reading. Immediately return 0 on success, and a non‐zero value if there are active or pending writers. If successful, `unlockRead` or `unlock` must be used to release the lock on this mutex. The behavior is undefined if this method is called from a thread that already has a lock on this mutex. | xref:BloombergLP/bslmt/ReaderWriterMutex/tryLockWrite.adoc[`tryLockWrite`] | Attempt to lock this reader‐writer mutex for writing. Immediately return 0 on success, and a non‐zero value if there are active or pending locks on this mutex. If successful, `unlockWrite` or `unlock` must be used to release the lock on this mutex. The behavior is undefined if this method is called from a thread that already has a lock on this mutex. | xref:BloombergLP/bslmt/ReaderWriterMutex/unlock.adoc[`unlock`] | Release the lock that the calling thread holds on this reader‐writer mutex. The behavior is undefined unless the calling thread currently has a lock on this mutex. | xref:BloombergLP/bslmt/ReaderWriterMutex/unlockRead.adoc[`unlockRead`] | Release the read lock that the calling thread holds on this reader‐writer mutex. The behavior is undefined unless the calling thread currently has a read lock on this mutex. | xref:BloombergLP/bslmt/ReaderWriterMutex/unlockWrite.adoc[`unlockWrite`] | Release the write lock that the calling thread holds on this reader‐writer mutex. The behavior is undefined unless the calling thread currently has a write lock on this mutex. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#