std::shared_lock instance that manages
the shared-ownership lock on the supplied mutex.
The calling thread must own a shared-ownership lock on
std::shared_lock instance that
references the supplied mutex and takes ownership of the lock on
m held by the calling