42#include <condition_variable>
54 static const uint32_t ShortTimeout_ms = 20;
70 bool wait(uint32_t aTimeout_ms)
const;
75 mutable std::mutex iMutex;
76 mutable std::condition_variable iCondVar;
78 mutable std::size_t iTotalWaiting;
79 mutable signal_type iSignalType;
85 typedef std::variant<wait_result_event, wait_result_message, wait_result_waitable>
wait_result;
92 typedef std::vector<event_pointer> list_type;
98 iEvents.push_back(&aEvent);
100 template <
typename InputIterator>
103 while(aFirst != aLast)
104 iEvents.push_back(&*aFirst++);
116 mutable list_type iEvents;
waitable_event_list(const waitable_event &aEvent)
wait_result msg_wait(const i_message_queue &aMessageQueue) const
wait_result msg_wait(const i_message_queue &aMessageQueue, const waitable &aWaitable) const
waitable_event_list(InputIterator aFirst, InputIterator aLast)
wait_result wait(const waitable &aWaitable) const
bool wait(uint32_t aTimeout_ms) const
bool msg_wait(const i_message_queue &aMessageQueue) const
bool msg_wait(const i_message_queue &aMessageQueue, uint32_t aTimeout_ms) const
std::variant< wait_result_event, wait_result_message, wait_result_waitable > wait_result
const waitable_event & iEvent