[#BloombergLP-bslmt-ReadLockGuardTryLock] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslmt.adoc[bslmt]::ReadLockGuardTryLock :relfileprefix: ../../ :mrdocs: This class template implements a guard for tentative acquisition and release of read synchronization resources (i.e., reader locks). == Synopsis Declared in `<bslmt_readlockguard.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> class ReadLockGuardTryLock; ---- == Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslmt/ReadLockGuardTryLock/2constructor.adoc[`ReadLockGuardTryLock`] [.small]#[constructor]# | Create a scoped guard that conditionally manages the specified `lock` (if non‐null) and invokes `lock‐>tryLockRead()` until the lock is acquired for reading, or until the optionally specified `attempts` have been made to acquire the lock. If `attempts` is not specified only one attempt is made to acquire the lock. Supplying a null `lock` has no effect. The behavior is undefined unless `lock` (if non‐null) is not already locked by this thread and `0 < attempts`. Note that `lock` must remain valid throughout the lifetime of this guard, or until `release` is called. | xref:BloombergLP/bslmt/ReadLockGuardTryLock/2destructor.adoc[`~ReadLockGuardTryLock`] [.small]#[destructor]# | Destroy this scoped guard and invoke the `unlock` method on the lock object under management by this guard, if any. If no lock is currently being managed, this method has no effect. | xref:BloombergLP/bslmt/ReadLockGuardTryLock/ptr.adoc[`ptr`] | Return the address of the modifiable lock object under management by this guard, or 0 if no lock is currently being managed. | xref:BloombergLP/bslmt/ReadLockGuardTryLock/release.adoc[`release`] | Return the address of the modifiable lock object under management by this guard, and release the lock from further management by this guard. If no lock is currently being managed, return 0 with no other effect. Note that this operation does _not_ unlock the lock object (if any) that was under management. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#