carb::tasking::SharedMutexWrapper¶
Defined in carb/tasking/TaskingUtils.h
-
class
carb::tasking
::
SharedMutexWrapper
¶ Wrapper for a carb::tasking::SharedMutex that (mostly) conforms to C++ Named Requirements of SharedMutex.
Public Functions
-
inline
SharedMutexWrapper
()¶ Constructs a new SharedMutexWrapper object.
-
inline
SharedMutexWrapper
(ITasking*)¶ Constructs a new SharedMutexWrapper object.
Note
Deprecated: ITasking no longer needed.
-
inline
~SharedMutexWrapper
()¶ Destructor.
Note
It is an error to destroy a shared mutex that is locked.
-
inline bool
try_lock_shared
()¶ Attempts to shared-lock the shared mutex immediately.
Note
It is an error to lock recursively or shared-lock when exclusive-locked, or vice versa.
- Returns
true if the mutex was shared-locked; false otherwise
-
inline bool
try_lock
()¶ Attempts to exclusive-lock the shared mutex immediately.
Note
It is an error to lock recursively or shared-lock when exclusive-locked, or vice versa.
- Returns
true if the mutex was shared-locked; false otherwise
-
template<class
Rep
, classPeriod
>
inline booltry_lock_for
(const std::chrono::duration<Rep, Period> &duration)¶ Attempts to exclusive-lock the shared mutex within a specified duration.
Note
It is an error to lock recursively or shared-lock when exclusive-locked, or vice versa.
- Parameters
duration – The duration to wait for the mutex to be available
- Returns
true if the mutex was exclusive-locked; false if the timeout period expired
-
template<class
Rep
, classPeriod
>
inline booltry_lock_shared_for
(const std::chrono::duration<Rep, Period> &duration)¶ Attempts to shared-lock the shared mutex within a specified duration.
Note
It is an error to lock recursively or shared-lock when exclusive-locked, or vice versa.
- Parameters
duration – The duration to wait for the mutex to be available
- Returns
true if the mutex was shared-locked; false if the timeout period expired
-
template<class
Clock
, classDuration
>
inline booltry_lock_until
(const std::chrono::time_point<Clock, Duration> &time_point)¶ Attempts to exclusive-lock the shared mutex until a specific clock time.
Note
It is an error to lock recursively or shared-lock when exclusive-locked, or vice versa.
- Parameters
time_point – The clock time to wait until.
- Returns
true if the mutex was exclusive-locked; false if the timeout period expired
-
template<class
Clock
, classDuration
>
inline booltry_lock_shared_until
(const std::chrono::time_point<Clock, Duration> &time_point)¶ Attempts to shared-lock the shared mutex until a specific clock time.
Note
It is an error to lock recursively or shared-lock when exclusive-locked, or vice versa.
- Parameters
time_point – The clock time to wait until.
- Returns
true if the mutex was shared-locked; false if the timeout period expired
-
inline void
lock_shared
()¶ Shared-locks the shared mutex, waiting until it becomes available.
Note
It is an error to lock recursively or shared-lock when exclusive-locked, or vice versa.
-
inline void
unlock_shared
()¶ Unlocks a mutex previously shared-locked by this thread/task.
Note
It is undefined behavior to unlock a mutex that is not owned by the current thread or task.
-
inline void
lock
()¶ Exclusive-locks the shared mutex, waiting until it becomes available.
Note
It is an error to lock recursively or shared-lock when exclusive-locked, or vice versa.
-
inline void
unlock
()¶ Unlocks a mutex previously exclusive-locked by this thread/task.
Note
It is undefined behavior to unlock a mutex that is not owned by the current thread or task.
-
inline
operator SharedMutex*
() const¶ Convertible to SharedMutex*.
-
inline ITasking *
getTasking
() const¶ Returns the acquired ITasking interface that was used to construct this object.
Note
Deprecated: Use carb::getCachedInterface instead.
-
inline