summaryrefslogtreecommitdiff
path: root/src/TNetLib/.svn/text-base/Mutex.cc.svn-base
diff options
context:
space:
mode:
Diffstat (limited to 'src/TNetLib/.svn/text-base/Mutex.cc.svn-base')
-rw-r--r--src/TNetLib/.svn/text-base/Mutex.cc.svn-base48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/TNetLib/.svn/text-base/Mutex.cc.svn-base b/src/TNetLib/.svn/text-base/Mutex.cc.svn-base
new file mode 100644
index 0000000..4ec956a
--- /dev/null
+++ b/src/TNetLib/.svn/text-base/Mutex.cc.svn-base
@@ -0,0 +1,48 @@
+
+#include <pthread.h>
+#include <cerrno>
+
+#include "Error.h"
+#include "Mutex.h"
+
+namespace TNet {
+
+
+Mutex::Mutex() {
+ if(0 != pthread_mutex_init(&mutex_,NULL))
+ KALDI_ERR << "Cannot initialize mutex";
+}
+
+
+Mutex::~Mutex() {
+ if(0 != pthread_mutex_destroy(&mutex_))
+ KALDI_ERR << "Cannot destroy mutex";
+}
+
+
+void Mutex::Lock() {
+ if(0 != pthread_mutex_lock(&mutex_))
+ KALDI_ERR << "Error on locking mutex";
+}
+
+
+bool Mutex::TryLock() {
+ int ret = pthread_mutex_lock(&mutex_);
+ switch (ret) {
+ case 0: return true;
+ case EBUSY: return false;
+ default: KALDI_ERR << "Error on try-locking mutex";
+ }
+ return 0;//make compiler not complain
+}
+
+
+void Mutex::Unlock() {
+ if(0 != pthread_mutex_unlock(&mutex_))
+ KALDI_ERR << "Error on unlocking mutex";
+}
+
+
+
+}//namespace TNet
+