diff options
author | Manjunath Kudlur <keveman@gmail.com> | 2015-11-06 16:27:58 -0800 |
---|---|---|
committer | Manjunath Kudlur <keveman@gmail.com> | 2015-11-06 16:27:58 -0800 |
commit | f41959ccb2d9d4c722fe8fc3351401d53bcf4900 (patch) | |
tree | ef0ca22cb2a5ac4bdec9d080d8e0788a53ed496d /tensorflow/core/lib/core/notification.h |
TensorFlow: Initial commit of TensorFlow library.
TensorFlow is an open source software library for numerical computation
using data flow graphs.
Base CL: 107276108
Diffstat (limited to 'tensorflow/core/lib/core/notification.h')
-rw-r--r-- | tensorflow/core/lib/core/notification.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/tensorflow/core/lib/core/notification.h b/tensorflow/core/lib/core/notification.h new file mode 100644 index 0000000000..071e24285a --- /dev/null +++ b/tensorflow/core/lib/core/notification.h @@ -0,0 +1,42 @@ +#ifndef TENSORFLOW_UTIL_NOTIFICATION_H_ +#define TENSORFLOW_UTIL_NOTIFICATION_H_ + +#include <assert.h> + +#include "tensorflow/core/platform/port.h" + +namespace tensorflow { + +class Notification { + public: + Notification() : notified_(false) {} + ~Notification() {} + + void Notify() { + mutex_lock l(mu_); + assert(!notified_); + notified_ = true; + cv_.notify_all(); + } + + bool HasBeenNotified() { + mutex_lock l(mu_); + return notified_; + } + + void WaitForNotification() { + mutex_lock l(mu_); + while (!notified_) { + cv_.wait(l); + } + } + + private: + mutex mu_; + condition_variable cv_; + bool notified_; +}; + +} // namespace tensorflow + +#endif // TENSORFLOW_UTIL_NOTIFICATION_H_ |