32 std::lock_guard<std::mutex> lck(idle_mutex_);
33 work_condition_.notify_one();
39 std::unique_lock<std::mutex> lck(idle_mutex_);
40 work_condition_.wait(lck);
45 std::cv_status status = std::cv_status::no_timeout;
47 std::unique_lock<std::mutex> lck(idle_mutex_);
48 status = work_condition_.wait_for(lck, duration);
54 std::shared_ptr<StatusMonitor> &status_monitor)
57 status_monitor->setStatusObserver(
this);
58 status_monitors_[(status_monitor.get())] = mask_factory_.getNewMask();
59 setStatus(status_monitor->getStatus(), status_monitor.get());
66 mask_ |= status_monitors_[status_monitor];
68 mask_ &= ~status_monitors_[status_monitor];
74 return mask_factory_.getCollectiveMask() == mask_;
void setStatus(const Status &status)
MultiStatusConditionMonitor * multi_status_cond_
void addStatusMonitor(std::shared_ptr< StatusMonitor > &status_monitor)
virtual void setStatus(const Status &status, StatusMonitor *status_monitor)