Update libprocess Once to use synchronized. Review: https://reviews.apache.org/r/35093
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/149f42fd Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/149f42fd Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/149f42fd Branch: refs/heads/master Commit: 149f42fde28bf6eabb3fef0eea6eb86b85ca53e7 Parents: dc17126 Author: Joris Van Remoortere <[email protected]> Authored: Sat Jun 13 06:14:50 2015 -0700 Committer: Benjamin Hindman <[email protected]> Committed: Sun Jun 14 02:43:00 2015 -0700 ---------------------------------------------------------------------- 3rdparty/libprocess/include/process/once.hpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/149f42fd/3rdparty/libprocess/include/process/once.hpp ---------------------------------------------------------------------- diff --git a/3rdparty/libprocess/include/process/once.hpp b/3rdparty/libprocess/include/process/once.hpp index 256ed07..2b81df3 100644 --- a/3rdparty/libprocess/include/process/once.hpp +++ b/3rdparty/libprocess/include/process/once.hpp @@ -4,6 +4,7 @@ #include <process/future.hpp> #include <stout/nothing.hpp> +#include <stout/synchronized.hpp> namespace process { @@ -32,8 +33,7 @@ public: { bool result = false; - pthread_mutex_lock(&mutex); - { + synchronized (mutex) { if (started) { while (!finished) { pthread_cond_wait(&cond, &mutex); @@ -43,7 +43,6 @@ public: started = true; } } - pthread_mutex_unlock(&mutex); return result; } @@ -51,14 +50,12 @@ public: // Transitions this Once instance to a 'done' state. void done() { - pthread_mutex_lock(&mutex); - { + synchronized (mutex) { if (started && !finished) { finished = true; pthread_cond_broadcast(&cond); } } - pthread_mutex_unlock(&mutex); } private:
