本文整理汇总了C++中ConditionVariable::notify_all方法的典型用法代码示例。如果您正苦于以下问题:C++ ConditionVariable::notify_all方法的具体用法?C++ ConditionVariable::notify_all怎么用?C++ ConditionVariable::notify_all使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ConditionVariable
的用法示例。
在下文中一共展示了ConditionVariable::notify_all方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: putBuffer
bool putBuffer()
{
Lock<Mutex> _(_dataAccessMutex);
if(_inUseBuffers.size() >= MAX_BUFFER_COUNT)
{
logger(LOG_WARNING) << "USBBulkStreamer: Dropping a frame because of slow forward pipeline." << std::endl;
_inUseBuffers.pop_front();
}
auto f = _rawBuffers.get();
RawDataFramePtr &raw = *f;
if(!raw || raw->data.size() != usbBuffer.size())
{
raw = RawDataFramePtr(new RawDataFrame());
raw->data.resize(usbBuffer.size());
}
memcpy(raw->data.data(), usbBuffer.data(), usbBuffer.size() - BULK_XFER_EXTRA_SIZE);
raw->timestamp = _timer.getCurentRealTime(); // in micro seconds
_inUseBuffers.push_back(f);
_dataAvailableCondition.notify_all();
return true;
}
示例2: Cancel
inline void TriggerTimer::Cancel() {
boost::lock_guard<Mutex> lock(m_mutex);
if(!m_isPending) {
return;
}
m_isPending = false;
m_publisher.Push(Timer::Result::CANCELED);
m_trigger.notify_all();
}
示例3: Lock
/* static */ void Vimpc::CreateEvent(int Event, EventData const & Data)
{
UniqueLock<Mutex> Lock(QueueMutex);
Queue.push_back(std::make_pair(Event, Data));
Condition.notify_all();
}
示例4: Trigger
inline void TriggerTimer::Trigger() {
boost::lock_guard<Mutex> lock(m_mutex);
m_isPending = false;
m_publisher.Push(Timer::Result::EXPIRED);
m_trigger.notify_all();
}