Welcome to the new CppUtils documentation!
CppUtils::Thread::SharedLocker<class T>
CLASSMonitor Object wrapper providing shared read / exclusive write synchronization.
Description
Section titled “Description”Encapsulates a resource with a std::shared_mutex, allowing either multiple concurrent read-only accessors (via sharedAccess()) or a single exclusive read-write accessor (via uniqueAccess()).
| Template parameter | Description |
|---|---|
T | Type of the protected resource. |
Public types
Section titled “Public types”UniqueAccessor
Section titled “UniqueAccessor”using CppUtils::Thread::SharedLocker< T >::UniqueAccessor = Accessor<T, SharedMutex>;SharedAccessor
Section titled “SharedAccessor”using CppUtils::Thread::SharedLocker< T >::SharedAccessor = ReadOnlyAccessor<T, SharedMutex>;Public methods & functions
Section titled “Public methods & functions”Constructs the protected resource in place.
| Parameter | Description |
|---|---|
first | First argument forwarded to the resource constructor. |
rest | Rest of arguments forwarded to the resource constructor. |
Move constructor. Acquires lock on the source locker before moving its value.
constexpr auto SharedLocker::operator=(SharedLocker&& other) noexcept(std::is_nothrow_move_assignable_v<T>) -> SharedLocker&;Move assignment. Acquires scoped lock on both mutexes before moving the value.
Acquires exclusive read/write access.
Returns: UniqueAccessor holding a unique lock.
Acquires shared read-only access.
Returns: SharedAccessor holding a shared lock.