std::shared_lock

From cppreference.com
< cpp‎ | thread
 
 
Thread support library
Threads
(C++11)
this_thread namespace
(C++11)
(C++11)
(C++11)
(C++11)
Mutual exclusion
(C++11)
(C++11)
(C++17)
Generic lock management
(C++11)
(C++11)
shared_lock
(C++14)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
(C++11)
(C++11)
Condition variables
(C++11)
Futures
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
 
 
Defined in header <shared_mutex>
template< class Mutex >
class shared_lock;
(since C++14)

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.

Contents

[edit] Template parameters

Mutex - the type of the shared mutex to lock. The type must meet the SharedMutex requirements

[edit] Member types

Type Definition
mutex_type Mutex

[edit] Member functions

constructs a shared_lock, optionally locking the supplied mutex
(public member function)
unlocks the associated mutex
(public member function)
unlocks the mutex, if owned, and acquires ownership of another
(public member function)
Shared locking
locks the associated mutex
(public member function)
tries to lock the associated mutex
(public member function)
tries to lock the associated mutex, for the specified duration
(public member function)
tries to lock the associated mutex, until a specified time point
(public member function)
unlocks the associated mutex
(public member function)
Modifiers
swaps the data members with another shared_lock
(public member function)
disassociates the mutex without unlocking
(public member function)
Observers
returns a pointer to the associated mutex
(public member function)
tests whether the lock owns its associated mutex
(public member function)
tests whether the lock owns its associated mutex
(public member function)

[edit] Non-member functions

specialization of std::swap for shared_lock
(function template)