You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by be...@apache.org on 2015/06/04 09:30:24 UTC

[3/9] mesos git commit: Move synchronized.hpp out of libprocess.

Move synchronized.hpp out of libprocess.

Review: https://reviews.apache.org/r/35013


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/889daa98
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/889daa98
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/889daa98

Branch: refs/heads/master
Commit: 889daa989fd19a12afb2560faef5d58d9af5db99
Parents: 90c10cb
Author: Joris Van Remoortere <jo...@gmail.com>
Authored: Thu Jun 4 00:25:01 2015 -0700
Committer: Benjamin Hindman <be...@gmail.com>
Committed: Thu Jun 4 00:25:02 2015 -0700

----------------------------------------------------------------------
 3rdparty/libprocess/Makefile.am          |  1 -
 3rdparty/libprocess/src/clock.cpp        |  2 +-
 3rdparty/libprocess/src/libev.hpp        |  3 +-
 3rdparty/libprocess/src/libevent.cpp     |  3 +-
 3rdparty/libprocess/src/process.cpp      |  2 +-
 3rdparty/libprocess/src/synchronized.hpp | 61 ---------------------------
 6 files changed, 5 insertions(+), 67 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/889daa98/3rdparty/libprocess/Makefile.am
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/Makefile.am b/3rdparty/libprocess/Makefile.am
index 6e8972f..489ce35 100644
--- a/3rdparty/libprocess/Makefile.am
+++ b/3rdparty/libprocess/Makefile.am
@@ -51,7 +51,6 @@ libprocess_la_SOURCES =		\
   src/reap.cpp			\
   src/socket.cpp		\
   src/subprocess.cpp		\
-  src/synchronized.hpp		\
   src/timeseries.cpp
 
 libprocess_la_CPPFLAGS =		\

http://git-wip-us.apache.org/repos/asf/mesos/blob/889daa98/3rdparty/libprocess/src/clock.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/clock.cpp b/3rdparty/libprocess/src/clock.cpp
index afeb43c..dd726c1 100644
--- a/3rdparty/libprocess/src/clock.cpp
+++ b/3rdparty/libprocess/src/clock.cpp
@@ -14,11 +14,11 @@
 #include <stout/duration.hpp>
 #include <stout/foreach.hpp>
 #include <stout/lambda.hpp>
+#include <stout/synchronized.hpp>
 #include <stout/try.hpp>
 #include <stout/unreachable.hpp>
 
 #include "event_loop.hpp"
-#include "synchronized.hpp"
 
 using std::list;
 using std::map;

http://git-wip-us.apache.org/repos/asf/mesos/blob/889daa98/3rdparty/libprocess/src/libev.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/libev.hpp b/3rdparty/libprocess/src/libev.hpp
index 6c2015b..a0a2f49 100644
--- a/3rdparty/libprocess/src/libev.hpp
+++ b/3rdparty/libprocess/src/libev.hpp
@@ -10,10 +10,9 @@
 #include <process/owned.hpp>
 
 #include <stout/lambda.hpp>
+#include <stout/synchronized.hpp>
 #include <stout/thread.hpp>
 
-#include "synchronized.hpp"
-
 namespace process {
 
 // Event loop.

http://git-wip-us.apache.org/repos/asf/mesos/blob/889daa98/3rdparty/libprocess/src/libevent.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/libevent.cpp b/3rdparty/libprocess/src/libevent.cpp
index d27fcb9..fb03859 100644
--- a/3rdparty/libprocess/src/libevent.cpp
+++ b/3rdparty/libprocess/src/libevent.cpp
@@ -5,9 +5,10 @@
 
 #include <process/logging.hpp>
 
+#include <stout/synchronized.hpp>
+
 #include "event_loop.hpp"
 #include "libevent.hpp"
-#include "synchronized.hpp"
 
 namespace process {
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/889daa98/3rdparty/libprocess/src/process.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/process.cpp b/3rdparty/libprocess/src/process.cpp
index 834670b..f1d3e5b 100644
--- a/3rdparty/libprocess/src/process.cpp
+++ b/3rdparty/libprocess/src/process.cpp
@@ -74,6 +74,7 @@
 #include <stout/option.hpp>
 #include <stout/os.hpp>
 #include <stout/strings.hpp>
+#include <stout/synchronized.hpp>
 #include <stout/thread.hpp>
 #include <stout/unreachable.hpp>
 
@@ -83,7 +84,6 @@
 #include "event_loop.hpp"
 #include "gate.hpp"
 #include "process_reference.hpp"
-#include "synchronized.hpp"
 
 using namespace process::metrics::internal;
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/889daa98/3rdparty/libprocess/src/synchronized.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/synchronized.hpp b/3rdparty/libprocess/src/synchronized.hpp
deleted file mode 100644
index 462c46c..0000000
--- a/3rdparty/libprocess/src/synchronized.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-#ifndef __SYNCHRONIZABLE_HPP__
-#define __SYNCHRONIZABLE_HPP__
-
-#include <atomic>
-#include <mutex>
-#include <type_traits>
-
-// A helper class for the synchronized(m) macro. It is an RAII 'guard'
-// for a synchronization primitive 'T'. The general template handles
-// cases such as 'std::mutex' and 'std::recursive_mutex'.
-template <typename T>
-class Synchronized
-{
-public:
-  Synchronized(T* _lock) : lock(CHECK_NOTNULL(_lock)) { lock->lock(); }
-  Synchronized(T** _lock) : Synchronized(*CHECK_NOTNULL(_lock)) {}
-
-  ~Synchronized() { lock->unlock(); }
-
-  operator bool() const { return true; }
-private:
-  T* lock;
-};
-
-
-// A specialization of the Synchronized class for 'std::atomic_flag'.
-// This is necessary as the locking functions are different.
-template <>
-class Synchronized<std::atomic_flag>
-{
-public:
-  Synchronized(std::atomic_flag* _flag) : flag(CHECK_NOTNULL(_flag))
-  {
-    while (flag->test_and_set(std::memory_order_acquire)) {}
-  }
-  Synchronized(std::atomic_flag** _flag)
-    : Synchronized(*CHECK_NOTNULL(_flag)) {}
-
-  ~Synchronized()
-  {
-    flag->clear(std::memory_order_release);
-  }
-
-  operator bool() const { return true; }
-private:
-  std::atomic_flag* flag;
-};
-
-
-// A macro for acquiring a scoped 'guard' on any type that can satisfy
-// the 'Synchronized' interface. Currently this includes 'std::mutex',
-// 'std::recursive_mutex' and 'std::atomic_flag'.
-// Example:
-//   std::mutex m;
-//   synchronized (m) {
-//     // Do something under the lock.
-//   }
-#define synchronized(m)                                                 \
-  if (auto __ ## __file__ ## _ ## __line__ ## __lock = Synchronized<typename std::remove_pointer<decltype(m)>::type>(&m)) // NOLINT(whitespace/line_length)
-
-#endif // __SYNCHRONIZABLE_HPP__