std::condition_variable cond; bool data_ready; std::mutex m; void wait_for_data() { std::unique_lock lk(m); cond.wait(lk,[]{return data_ready;}); }