![]() |
Home | Libraries | People | FAQ | More |
boost::interprocess::interprocess_condition_any
// In header: <boost/interprocess/sync/interprocess_condition_any.hpp> class interprocess_condition_any { public: // construct/copy/destruct (); ~(); // public member functions (); (); template<typename L> (); template<typename L, typename Pr> (, ); template<typename L, typename TimePoint> (, ); template<typename L, typename TimePoint, typename Pr> (, , ); template<typename L, typename TimePoint> (, ); template<typename L, typename TimePoint, typename Pr> (, , ); template<typename L, typename Duration> (, ); template<typename L, typename Duration, typename Pr> (, , ); };
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.
interprocess_condition_any
public
construct/copy/destruct();Constructs a
interprocess_condition_any
. On error throws interprocess_exception
. ~();
Destroys *this liberating system resources.
interprocess_condition_any
public member functions();
If there is a thread waiting on *this, change that thread's state to ready. Otherwise there is no effect.
();
Change the state of all threads waiting on *this to ready. If there are no waiting threads, notify_all() has no effect.
template<typename 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.
template<typename L, typename Pr> ( lock, pred);
The same as: while (!pred()) wait(lock)
template<typename L, typename TimePoint> ( lock, 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. Returns: false if time abs_time is reached, otherwise true.
template<typename L, typename TimePoint, typename Pr> ( lock, abs_time, pred);
The same as: while (!pred()) { if (!timed_wait(lock, abs_time)) return pred(); } return true;
template<typename L, typename TimePoint> ( lock, abs_time);
Same as timed_wait
, but this function is modeled after the standard library interface.
template<typename L, typename TimePoint, typename Pr> ( lock, abs_time, pred);
Same as timed_wait
, but this function is modeled after the standard library interface.
template<typename L, typename Duration> ( lock, dur);
Same as timed_wait
, but this function is modeled after the standard library interface and uses relative timeouts.
template<typename L, typename Duration, typename Pr> ( lock, dur, pred);
Same as timed_wait
, but this function is modeled after the standard library interface and uses relative timeouts