std::shared_lock (3) - Linux Manuals
std::shared_lock: std::shared_lock
NAME
std::shared_lock - std::shared_lock
Synopsis
Defined in header <shared_mutex>
template< class Mutex > (since C++14)
class shared_lock;
The class shared_lock is a general-purpose shared mutex ownership wrapper allowing deferred locking, timed locking and transfer of lock ownership. Locking a shared_lock locks the associated shared mutex in shared mode (to lock it in exclusive mode, std::unique_lock can be used)
The shared_lock class is movable, but not copyable -- it meets the requirements of MoveConstructible and MoveAssignable but not of CopyConstructible or CopyAssignable.
In order to wait in a shared mutex in shared ownership mode, std::condition_variable_any can be used (std::condition_variable requires std::unique_lock and so can only wait in unique ownership mode)
Template parameters
Mutex - the type of the shared mutex to lock. The type must meet the SharedMutex requirements
Member types
Type Definition
mutex_type Mutex
Member functions
constructor (public member function)
destructor (public member function)
operator= (public member function)
Shared locking
lock (public member function)
try_lock (public member function)
try_lock_for (public member function)
try_lock_until (public member function)
unlock (public member function)
Modifiers
swap (public member function)
release (public member function)
Observers
mutex (public member function)
owns_lock (public member function)
operator_bool (public member function)
Non-member functions
std::swap(std::shared_lock) (function template)
Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
DR Applied to Behavior as published Correct behavior
LWG_2981 C++17 redundant deduction guide from shared_lock<Mutex> was provided removed