This class is a condition variable that can be placed in shared memory or memory mapped files.
More...
#include <interprocess_condition_any.hpp>
|
| | interprocess_condition_any () |
| | Constructs a interprocess_condition_any. On error throws interprocess_exception. More...
|
| |
| | ~interprocess_condition_any () |
| | Destroys *this liberating system resources. More...
|
| |
| void | notify_one () |
| | If there is a thread waiting on *this, change that thread's state to ready. More...
|
| |
| void | notify_all () |
| | Change the state of all threads waiting on *this to ready. More...
|
| |
| template<typename L > |
| void | wait (L &lock) |
| | Releases the lock on the interprocess_mutex object associated with lock, blocks the current thread of execution until readied by a call to this->notify_one() or this->notify_all(), and then reacquires the lock. More...
|
| |
| template<typename L , typename Pr > |
| void | wait (L &lock, Pr pred) |
| | The same as: while (!pred()) wait(lock) More...
|
| |
| template<typename L > |
| bool | timed_wait (L &lock, const boost::posix_time::ptime &abs_time) |
| | Releases the lock on the interprocess_mutex object associated with lock, blocks the current thread of execution until readied by a call to this->notify_one() or this->notify_all(), or until time abs_time is reached, and then reacquires the lock. More...
|
| |
| template<typename L , typename Pr > |
| bool | timed_wait (L &lock, const boost::posix_time::ptime &abs_time, Pr pred) |
| | The same as: while (!pred()) { if (!timed_wait(lock, abs_time)) return pred(); } return true;. More...
|
| |
This class is a condition variable that can be placed in shared memory or memory mapped files.
The interprocess_condition_any class is a generalization of interprocess_condition. Whereas interprocess_condition works only on Locks with mutex_type == interprocess_mutex interprocess_condition_any can operate on any user-defined lock that meets the BasicLockable requirements (lock()/unlock() member functions).
Unlike std::condition_variable_any in C++11, it is NOT safe to invoke the destructor if all threads have been only notified. It is required that they have exited their respective wait functions.
| boost::interprocess::interprocess_condition_any::interprocess_condition_any |
( |
| ) |
|
|
inline |
| boost::interprocess::interprocess_condition_any::~interprocess_condition_any |
( |
| ) |
|
|
inline |
Destroys *this liberating system resources.
| void boost::interprocess::interprocess_condition_any::notify_all |
( |
| ) |
|
|
inline |
Change the state of all threads waiting on *this to ready.
If there are no waiting threads, notify_all() has no effect.
| void boost::interprocess::interprocess_condition_any::notify_one |
( |
| ) |
|
|
inline |
If there is a thread waiting on *this, change that thread's state to ready.
Otherwise there is no effect.
template<typename L >
| bool boost::interprocess::interprocess_condition_any::timed_wait |
( |
L & |
lock, |
|
|
const boost::posix_time::ptime & |
abs_time |
|
) |
| |
|
inline |
Releases the lock on the interprocess_mutex object associated with lock, blocks the current thread of execution until readied by a call to this->notify_one() or this->notify_all(), or until time abs_time is reached, and then reacquires the lock.
Returns: false if time abs_time is reached, otherwise true.
template<typename L , typename Pr >
| bool boost::interprocess::interprocess_condition_any::timed_wait |
( |
L & |
lock, |
|
|
const boost::posix_time::ptime & |
abs_time, |
|
|
Pr |
pred |
|
) |
| |
|
inline |
The same as: while (!pred()) { if (!timed_wait(lock, abs_time)) return pred(); } return true;.
template<typename L >
| void boost::interprocess::interprocess_condition_any::wait |
( |
L & |
lock | ) |
|
|
inline |
Releases the lock on the interprocess_mutex object associated with lock, blocks the current thread of execution until readied by a call to this->notify_one() or this->notify_all(), and then reacquires the lock.
template<typename L , typename Pr >
| void boost::interprocess::interprocess_condition_any::wait |
( |
L & |
lock, |
|
|
Pr |
pred |
|
) |
| |
|
inline |
The same as: while (!pred()) wait(lock)
The documentation for this class was generated from the following file: