carb::tasking::ConditionVariableWrapper¶
Defined in carb/tasking/TaskingUtils.h
-
class
carb::tasking
::
ConditionVariableWrapper
¶ Wrapper for carb::tasking::ConditionVariable.
Public Functions
-
inline
ConditionVariableWrapper
()¶ Constructs a new ConditionVariableWrapper object.
-
inline
ConditionVariableWrapper
(ITasking*)¶ Constructs a new ConditionVariableWrapper object.
Note
Deprecated: ITasking no longer needed.
-
inline
~ConditionVariableWrapper
()¶ Destructor.
Note
It is an error to destroy a condition variable that has waiting threads.
-
inline void
wait
(Mutex *m)¶ Waits until the condition variable is notified.
Note
m
must be locked when calling this function. The mutex will be unlocked while waiting and re-locked before returning to the caller.- Parameters
m – The mutex to unlock while waiting for the condition variable to be notified.
-
template<class
Pred
>
inline voidwait
(Mutex *m, Pred &&pred)¶ Waits until a predicate has been satisfied and the condition variable is notified.
Note
m
must be locked when calling this function. The mutex will be locked when callingpred
and when this function returns, but unlocked while waiting.- Parameters
m – The mutex to unlock while waiting for the condition variable to be notified.
pred – A predicate that is called repeatedly. When it returns true, the function returns. If it returns false,
m
is unlocked and the thread/task waits until the condition variable is notified.
-
template<class
Rep
, classPeriod
>
inline std::cv_statuswait_for
(Mutex *m, const std::chrono::duration<Rep, Period> &duration)¶ Waits until the condition variable is notified or the specified duration expires.
Note
m
must be locked when calling this function. The mutex will be unlocked while waiting and re-locked before returning to the caller.- Parameters
m – The mutex to unlock while waiting for the condition variable to be notified.
duration – The amount of time to wait for.
- Returns
std::cv_status::no_timeout
if the condition variable was notified;std::cv_status::timeout
if the timeout period expired.
-
template<class
Rep
, classPeriod
, classPred
>
inline boolwait_for
(Mutex *m, const std::chrono::duration<Rep, Period> &duration, Pred &&pred)¶ Waits until a predicate is satisfied and the condition variable is notified, or the specified duration expires.
Note
m
must be locked when calling this function. The mutex will be unlocked while waiting and re-locked before returning to the caller.- Parameters
m – The mutex to unlock while waiting for the condition variable to be notified.
duration – The amount of time to wait for.
pred – A predicate that is called repeatedly. When it returns true, the function returns. If it returns false,
m
is unlocked and the thread/task waits until the condition variable is notified.
- Returns
true if the predicate was satisfied; false if a timeout occurred.
-
template<class
Clock
, classDuration
>
inline std::cv_statuswait_until
(Mutex *m, const std::chrono::time_point<Clock, Duration> &time_point)¶ Waits until the condition variable is notified or the clock reaches the given time point.
Note
m
must be locked when calling this function. The mutex will be unlocked while waiting and re-locked before returning to the caller.- Parameters
m – The mutex to unlock while waiting for the condition variable to be notified.
time_point – The clock time to wait until.
- Returns
std::cv_status::no_timeout
if the condition variable was notified;std::cv_status::timeout
if the timeout period expired.
-
template<class
Clock
, classDuration
, classPred
>
inline boolwait_until
(Mutex *m, const std::chrono::time_point<Clock, Duration> &time_point, Pred &&pred)¶ Waits until a predicate is satisfied and the condition variable is notified or the clock reaches the given time point.
Note
m
must be locked when calling this function. The mutex will be unlocked while waiting and re-locked before returning to the caller.- Parameters
m – The mutex to unlock while waiting for the condition variable to be notified.
time_point – The clock time to wait until.
pred – A predicate that is called repeatedly. When it returns true, the function returns. If it returns false,
m
is unlocked and the thread/task waits until the condition variable is notified.
- Returns
true if the predicate was satisfied; false if a timeout occurred.
-
inline void
notify_one
()¶ Notifies one waiting thread/task to wake and check the predicate (if applicable).
-
inline void
notify_all
()¶ Notifies all waiting threads/tasks to wake and check the predicate (if applicable).
-
inline
operator ConditionVariable*
() const¶ Convertible to ConditionVariable*.
-
inline ITasking *
getTasking
() const¶ Returns the acquired ITasking interface that was used to construct this object.
Note
Deprecated: Use carb::getCachedInterface instead.
-
inline