roo_threads
API Documentation for roo_threads
Loading...
Searching...
No Matches
roo_threads::doc::condition_variable Class Reference

Synchronization primitive for blocking and waking threads. More...

#include <condition_variable_api.h>

Public Member Functions

 condition_variable () noexcept
 Constructs a condition variable.
 
 condition_variable (const condition_variable &)=delete
 
condition_variableoperator= (const condition_variable &)=delete
 
void wait (unique_lock< mutex > &lock) noexcept
 Waits until notified; may wake spuriously.
 
template<class Predicate >
void wait (unique_lock< mutex > &lock, Predicate pred)
 Waits until predicate becomes true.
 
void notify_one () noexcept
 Wakes one waiting thread.
 
void notify_all () noexcept
 Wakes all waiting threads.
 
cv_status wait_until (unique_lock< mutex > &lock, const roo_time::Uptime &when)
 Waits until notified or deadline is reached.
 
template<typename Predicate >
bool wait_until (unique_lock< mutex > &lock, const roo_time::Uptime &when, Predicate p)
 Waits until predicate becomes true or deadline is reached.
 
cv_status wait_for (unique_lock< mutex > &lock, const roo_time::Duration &duration)
 Waits until notified or duration elapses.
 
template<typename Predicate >
bool wait_for (unique_lock< mutex > &lock, const roo_time::Duration &duration, Predicate p)
 Waits until predicate becomes true or duration elapses.
 

Detailed Description

Synchronization primitive for blocking and waking threads.

Definition at line 15 of file condition_variable_api.h.

Constructor & Destructor Documentation

◆ condition_variable() [1/2]

roo_threads::doc::condition_variable::condition_variable ( )
noexcept

Constructs a condition variable.

◆ condition_variable() [2/2]

roo_threads::doc::condition_variable::condition_variable ( const condition_variable )
delete

Member Function Documentation

◆ notify_all()

void roo_threads::doc::condition_variable::notify_all ( )
noexcept

Wakes all waiting threads.

◆ notify_one()

void roo_threads::doc::condition_variable::notify_one ( )
noexcept

Wakes one waiting thread.

◆ operator=()

condition_variable & roo_threads::doc::condition_variable::operator= ( const condition_variable )
delete

◆ wait() [1/2]

void roo_threads::doc::condition_variable::wait ( unique_lock< mutex > &  lock)
noexcept

Waits until notified; may wake spuriously.

Parameters
locklock associated with the condition variable.

◆ wait() [2/2]

template<class Predicate >
void roo_threads::doc::condition_variable::wait ( unique_lock< mutex > &  lock,
Predicate  pred 
)

Waits until predicate becomes true.

Parameters
locklock associated with the condition variable.
predpredicate to evaluate after wakeups.

◆ wait_for() [1/2]

cv_status roo_threads::doc::condition_variable::wait_for ( unique_lock< mutex > &  lock,
const roo_time::Duration &  duration 
)

Waits until notified or duration elapses.

Parameters
locklock associated with the condition variable.
durationrelative timeout duration.
Returns
timeout status.

◆ wait_for() [2/2]

template<typename Predicate >
bool roo_threads::doc::condition_variable::wait_for ( unique_lock< mutex > &  lock,
const roo_time::Duration &  duration,
Predicate  p 
)

Waits until predicate becomes true or duration elapses.

Parameters
locklock associated with the condition variable.
durationrelative timeout duration.
ppredicate to evaluate after wakeups.
Returns
true if predicate became true.

◆ wait_until() [1/2]

cv_status roo_threads::doc::condition_variable::wait_until ( unique_lock< mutex > &  lock,
const roo_time::Uptime &  when 
)

Waits until notified or deadline is reached.

Parameters
locklock associated with the condition variable.
whenabsolute timeout point.
Returns
timeout status.

◆ wait_until() [2/2]

template<typename Predicate >
bool roo_threads::doc::condition_variable::wait_until ( unique_lock< mutex > &  lock,
const roo_time::Uptime &  when,
Predicate  p 
)

Waits until predicate becomes true or deadline is reached.

Parameters
locklock associated with the condition variable.
whenabsolute timeout point.
ppredicate to evaluate after wakeups.
Returns
true if predicate became true.

The documentation for this class was generated from the following file: