6#include "roo_threads.h"
7#include "roo_threads/condition_variable.h"
8#include "roo_threads/mutex.h"
13class OutgoingDataReadyNotification {
15 OutgoingDataReadyNotification() : mutex_(), has_data_to_send_(false), cv_() {}
18 roo::unique_lock<roo::mutex> guard(mutex_);
19 if (has_data_to_send_)
return;
20 has_data_to_send_ =
true;
25 bool await(
long micros) {
26 roo::unique_lock<roo::mutex> guard(mutex_);
27 bool result = cv_.wait_for(guard, roo_time::Micros(micros),
28 [
this]() {
return has_data_to_send_; });
29 has_data_to_send_ =
false;
35 bool has_data_to_send_;
36 roo::condition_variable cv_;