33 std::unique_lock<std::mutex> lk(
m_);
35 std::stringstream events_stringstream;
36 for (
auto event : clear_events)
38 events_stringstream <<
event <<
", ";
40 ROS_DEBUG_NAMED(
"Test",
"Adding Barricade[%s]", events_stringstream.str().c_str());
43 [
this](std::string event){
return this->
waitlist_.count(event) == 0; });
54 std::lock_guard<std::mutex> lk(
m_);
63 ROS_WARN_STREAM(
"Triggered event " << event <<
" despite not waiting for it.");
void barricade(std::string clear_event)
Will block until the event given by clear_event is triggered. Unblocks immediately, if the event was triggered in advance.
std::condition_variable cv_
void triggerClearEvent(std::string event)
Triggeres a clear event. If a call to barricade is currently pending it will unblock as soon as all c...
#define ROS_DEBUG_NAMED(name,...)
std::set< std::string > clear_events_
#define ROS_WARN_STREAM(args)
std::set< std::string > waitlist_