SimGrid  3.16
Versatile Simulation of Distributed Systems
simgrid::s4u::ConditionVariable Class Reference

Detailed Description

A condition variable

This is a drop-in replacement of std::condition_variable and should respect the same semantic.

But we currently use (only) double for both durations and timestamp timeouts.

#include <ConditionVariable.hpp>

Public Types

using Ptr = boost::intrusive_ptr< ConditionVariable >
 

Public Member Functions

 ConditionVariable (ConditionVariable const &)=delete
 
ConditionVariableoperator= (ConditionVariable const &)=delete
 
void wait (MutexPtr lock)
 Wait functions. More...
 
void wait (std::unique_lock< Mutex > &lock)
 
template<class P >
void wait (std::unique_lock< Mutex > &lock, P pred)
 
std::cv_status wait_until (std::unique_lock< Mutex > &lock, double timeout_time)
 
std::cv_status wait_for (std::unique_lock< Mutex > &lock, double duration)
 
template<class P >
bool wait_until (std::unique_lock< Mutex > &lock, double timeout_time, P pred)
 
template<class P >
bool wait_for (std::unique_lock< Mutex > &lock, double duration, P pred)
 
template<class Rep , class Period , class P >
bool wait_for (std::unique_lock< Mutex > &lock, std::chrono::duration< Rep, Period > duration, P pred)
 
template<class Rep , class Period >
std::cv_status wait_for (std::unique_lock< Mutex > &lock, std::chrono::duration< Rep, Period > duration)
 
template<class Duration >
std::cv_status wait_until (std::unique_lock< Mutex > &lock, const SimulationTimePoint< Duration > &timeout_time)
 
template<class Duration , class P >
bool wait_until (std::unique_lock< Mutex > &lock, const SimulationTimePoint< Duration > &timeout_time, P pred)
 
void notify_one ()
 Notify functions. More...
 
void notify_all ()
 
void notify ()
 

Static Public Member Functions

static Ptr createConditionVariable ()
 

Friends

void intrusive_ptr_add_ref (ConditionVariable *cond)
 
void intrusive_ptr_release (ConditionVariable *cond)
 

Member Typedef Documentation

◆ Ptr

Constructor & Destructor Documentation

◆ ConditionVariable()

simgrid::s4u::ConditionVariable::ConditionVariable ( ConditionVariable const &  )
delete

Member Function Documentation

◆ operator=()

ConditionVariable& simgrid::s4u::ConditionVariable::operator= ( ConditionVariable const &  )
delete

◆ createConditionVariable()

ConditionVariablePtr simgrid::s4u::ConditionVariable::createConditionVariable ( )
static

◆ wait() [1/3]

void simgrid::s4u::ConditionVariable::wait ( MutexPtr  lock)

Wait functions.

◆ wait() [2/3]

void simgrid::s4u::ConditionVariable::wait ( std::unique_lock< Mutex > &  lock)

◆ wait() [3/3]

template<class P >
void simgrid::s4u::ConditionVariable::wait ( std::unique_lock< Mutex > &  lock,
pred 
)
inline

◆ wait_until() [1/4]

std::cv_status simgrid::s4u::ConditionVariable::wait_until ( std::unique_lock< Mutex > &  lock,
double  timeout_time 
)

◆ wait_for() [1/4]

std::cv_status simgrid::s4u::ConditionVariable::wait_for ( std::unique_lock< Mutex > &  lock,
double  duration 
)

◆ wait_until() [2/4]

template<class P >
bool simgrid::s4u::ConditionVariable::wait_until ( std::unique_lock< Mutex > &  lock,
double  timeout_time,
pred 
)
inline

◆ wait_for() [2/4]

template<class P >
bool simgrid::s4u::ConditionVariable::wait_for ( std::unique_lock< Mutex > &  lock,
double  duration,
pred 
)
inline

◆ wait_for() [3/4]

template<class Rep , class Period , class P >
bool simgrid::s4u::ConditionVariable::wait_for ( std::unique_lock< Mutex > &  lock,
std::chrono::duration< Rep, Period >  duration,
pred 
)
inline

◆ wait_for() [4/4]

template<class Rep , class Period >
std::cv_status simgrid::s4u::ConditionVariable::wait_for ( std::unique_lock< Mutex > &  lock,
std::chrono::duration< Rep, Period >  duration 
)
inline

◆ wait_until() [3/4]

template<class Duration >
std::cv_status simgrid::s4u::ConditionVariable::wait_until ( std::unique_lock< Mutex > &  lock,
const SimulationTimePoint< Duration > &  timeout_time 
)
inline

◆ wait_until() [4/4]

template<class Duration , class P >
bool simgrid::s4u::ConditionVariable::wait_until ( std::unique_lock< Mutex > &  lock,
const SimulationTimePoint< Duration > &  timeout_time,
pred 
)
inline

◆ notify_one()

void simgrid::s4u::ConditionVariable::notify_one ( )

Notify functions.

◆ notify_all()

void simgrid::s4u::ConditionVariable::notify_all ( )

◆ notify()

void simgrid::s4u::ConditionVariable::notify ( )
inline

Friends And Related Function Documentation

◆ intrusive_ptr_add_ref

void intrusive_ptr_add_ref ( ConditionVariable cond)
friend

◆ intrusive_ptr_release

void intrusive_ptr_release ( ConditionVariable cond)
friend

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