carb::tasking::RecursiveMutexWrapper
Defined in carb/tasking/TaskingUtils.h
-
class RecursiveMutexWrapper
Wrapper for a recursive carb::tasking::Mutex that conforms to C++ Named Requirements of Lockable.
Public Functions
-
inline RecursiveMutexWrapper()
Constructs a new RecursiveMutexWrapper object.
-
inline RecursiveMutexWrapper(ITasking*)
Constructs a new RecursiveMutexWrapper object.
Note
Deprecated: ITasking no longer needed.
-
inline ~RecursiveMutexWrapper()
Destructor.
Warning
It is an error to destroy a mutex that is locked.
-
inline bool try_lock()
Attempts to lock the mutex immediately.
- Returns
true if the mutex was locked or already owned by this thread/task; false otherwise. If true is returned, unlock() must be called to release the lock.
-
inline void lock()
Locks the mutex, waiting until it becomes available.
Call unlock() to release the lock.
-
inline void unlock()
Unlocks a mutex previously acquired with try_lock() or lock()
Note
The unlock() function must be called for each successful lock.
Warning
It is undefined behavior to unlock a mutex that is not owned by the current thread or task.
-
template<class Rep, class Period>
inline bool try_lock_for(const std::chrono::duration<Rep, Period> &duration) Attempts to lock a mutex within a specified duration.
- Parameters
duration – The duration to wait for the mutex to be available
- Returns
true if the mutex was locked; false if the timeout period expired. If true is returned, unlock() must be called to release the lock.
-
template<class Clock, class Duration>
inline bool try_lock_until(const std::chrono::time_point<Clock, Duration> &time_point) Attempts to lock a mutex waiting until a specific clock time.
- Parameters
time_point – The clock time to wait until.
- Returns
true if the mutex was locked; false if the timeout period expired. If true is returned, unlock() must be called to release the lock.
-
inline ITasking *getTasking() const
Returns the acquired ITasking interface that was used to construct this object.
Note
Deprecated: Use carb::getCachedInterface instead.
-
inline RecursiveMutexWrapper()