18 #ifndef LUNCHBOX_CONDITION_H
19 #define LUNCHBOX_CONDITION_H
23 #include <boost/noncopyable.hpp>
27 namespace detail {
class Condition; }
43 LUNCHBOX_API
void lock();
46 LUNCHBOX_API
void unlock();
49 LUNCHBOX_API
void signal();
58 LUNCHBOX_API
void wait();
70 LUNCHBOX_API
bool timedWait(
const uint32_t timeout );
73 detail::Condition*
const _impl;
77 #endif //LUNCHBOX_CONDITION_H
LUNCHBOX_API bool timedWait(const uint32_t timeout)
Atomically unlock the mutex, wait for a signal and relock the mutex.
Defines export visibility macros for library Lunchbox.
Basic type definitions not provided by the operating system.
A condition variable and associated lock.
LUNCHBOX_API void lock()
Lock the mutex.
LUNCHBOX_API void signal()
Signal the condition.
LUNCHBOX_API Condition()
Construct a new condition variable.
LUNCHBOX_API ~Condition()
Destruct this condition variable.
LUNCHBOX_API void broadcast()
Broadcast the condition.
LUNCHBOX_API void wait()
Atomically unlock the mutex, wait for a signal and relock the mutex.
Abstraction layer and common utilities for multi-threaded programming.
LUNCHBOX_API void unlock()
Unlock the mutex.