所有
我是提升同步的新手,所以非常感谢下面代码的批评者。
可以在多线程环境中使用它吗?
很少有线程等到My_boost_event :: is_siagnaled()返回true。 "控制器"线程只是启动事件设置到"发出信号"状态。
谢谢。
class My_boost_event
{
private:
boost::mutex mutex_;
bool m_signaled;
public:
My_boost_event(bool signaled) : m_signaled(signaled)
{
}
void set()
{
boost::mutex::scoped_lock lock(mutex_);
m_signaled = true ;
}
void reset()
{
boost::mutex::scoped_lock lock(mutex_);
m_signaled = false;
}
bool is_signaled()
{
boost::mutex::scoped_lock lock(mutex_);
return m_signaled;
}
};