我有一个等待事件的循环。
我希望能够添加notifyAndWait()
功能
我不确定如何将其添加到我当前的课程
class Event
{
public:
Event() : _signalled(false) {}
void notify()
{
std::unique_lock<std::mutex> lock(_mutex);
_signalled = true;
_condvar.notify_one();
}
void wait()
{
std::unique_lock<std::mutex> lock(_mutex);
_condvar.wait(lock, [&] { return _signalled; }); // also takes care about spurious wakeup
_signalled = false; // auto-reset semantics
}
private:
std::mutex _mutex;
std::condition_variable _condvar;
bool _signalled;
};
答案 0 :(得分:0)
您可以使用相同的条件变量使用不同的标志将信号传回给调用线程。像这样:
droplevels(data.2)