[#BloombergLP-bslmt-ReadLockGuard-2constructor-080] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslmt.adoc[bslmt]::xref:BloombergLP/bslmt/ReadLockGuard.adoc[ReadLockGuard]::ReadLockGuard :relfileprefix: ../../../ :mrdocs: Create a scoped guard that conditionally manages the specified `lock` (if non‐null) and invokes `lock‐>lockRead()` if the specified `alreadyLockedFlag` is `false`. Supplying a null `lock` has no effect. The behavior is undefined unless the state of `lock` (if non‐null) is consistent with `alreadyLockedFlag`. Note that `alreadyLockedFlag` is used to indicate whether `lock` is in an already‐locked state when passed, so if `alreadyLockedFlag` is `true` the `lock` method will _not_ be called on the supplied `lock`. Also note that `lock` must remain valid throughout the lifetime of this guard, or until `release` is called. == Synopsis Declared in `<bslmt_readlockguard.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- ReadLockGuard( T* lock, bool alreadyLockedFlag); ---- [.small]#Created with https://www.mrdocs.com[MrDocs]#