THRIFT: mutex trylock support
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
diff --git a/lib/cpp/src/concurrency/Mutex.cpp b/lib/cpp/src/concurrency/Mutex.cpp
index 8f79795..695d5dc 100644
--- a/lib/cpp/src/concurrency/Mutex.cpp
+++ b/lib/cpp/src/concurrency/Mutex.cpp
@@ -35,6 +35,8 @@
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 @@
void Mutex::lock() const { impl_->lock(); }
+bool Mutex::trylock() const { return impl_->trylock(); }
+
void Mutex::unlock() const { impl_->unlock(); }
/**
diff --git a/lib/cpp/src/concurrency/Mutex.h b/lib/cpp/src/concurrency/Mutex.h
index 02accf9..72f7525 100644
--- a/lib/cpp/src/concurrency/Mutex.h
+++ b/lib/cpp/src/concurrency/Mutex.h
@@ -20,6 +20,7 @@
Mutex();
virtual ~Mutex() {}
virtual void lock() const;
+ virtual bool trylock() const;
virtual void unlock() const;
private: