THRIFT: mutex trylock support
authorboz <dev-null@apache.org>
Wed, 15 Aug 2007 20:55:36 +0000 (20:55 +0000)
committerboz <dev-null@apache.org>
Wed, 15 Aug 2007 20:55:36 +0000 (20:55 +0000)
Summary: add trylock support to the Mutex class

Reviewed By: mcslee

Test Plan: added trylock mutexes to foreman, walked through them in gdb
(behaved correctly) and then ran an entire sweep (behaved correctly)

Notes: slee ftw

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665204 13f79535-47bb-0310-9956-ffa450edef68

lib/cpp/src/concurrency/Mutex.cpp
lib/cpp/src/concurrency/Mutex.h

index 8f79795..695d5dc 100644 (file)
@@ -35,6 +35,8 @@ class Mutex::impl {
 
   void lock() const { pthread_mutex_lock(&pthread_mutex_); }
 
+  bool trylock() const { return (0 == pthread_mutex_trylock(&pthread_mutex_)); }
+
   void unlock() const { pthread_mutex_unlock(&pthread_mutex_); }
 
  private:
@@ -46,6 +48,8 @@ Mutex::Mutex() : impl_(new Mutex::impl()) {}
 
 void Mutex::lock() const { impl_->lock(); }
 
+bool Mutex::trylock() const { return impl_->trylock(); }
+
 void Mutex::unlock() const { impl_->unlock(); }
 
 /** 
index 02accf9..72f7525 100644 (file)
@@ -20,6 +20,7 @@ class Mutex {
   Mutex();
   virtual ~Mutex() {}
   virtual void lock() const;
+  virtual bool trylock() const;
   virtual void unlock() const;
 
  private: