Checkpoint of initial cut at thread pool manager for thrift and related concurrency classes.


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664721 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/lib/cpp/src/concurrency/Mutex.h b/lib/cpp/src/concurrency/Mutex.h
new file mode 100644
index 0000000..e8371ea
--- /dev/null
+++ b/lib/cpp/src/concurrency/Mutex.h
@@ -0,0 +1,43 @@
+#if !defined(_concurrency_mutex_h_)
+#define _concurrency_mutex_h_ 1
+
+namespace facebook { namespace thrift { namespace concurrency { 
+
+class Mutex {
+
+ public:
+
+  Mutex();
+
+  virtual ~Mutex() {}
+
+  virtual void lock() const;
+
+  virtual void unlock() const;
+
+ private:
+
+  class impl;
+
+  impl* _impl;
+};
+
+class MutexMonitor {
+ public:
+  
+  MutexMonitor(const Mutex& value) : _mutex(value) {
+    _mutex.lock();
+  }
+
+  ~MutexMonitor() {
+    _mutex.unlock();
+  }
+
+ private:
+  const Mutex& _mutex;
+};
+
+
+}}} // facebook::thrift::concurrency
+
+#endif // !defined(_concurrency_mutex_h_)