summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/IceUtil/RecMutex.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/cpp/src/IceUtil/RecMutex.cpp b/cpp/src/IceUtil/RecMutex.cpp
index ae83312043c..7e0431fe89d 100644
--- a/cpp/src/IceUtil/RecMutex.cpp
+++ b/cpp/src/IceUtil/RecMutex.cpp
@@ -88,6 +88,26 @@ IceUtil::RecMutex::lock(LockState& state) const
IceUtil::RecMutex::RecMutex() :
_count(0)
{
+ pthread_mutexattr_t attr;
+ int rc = pthread_mutexattr_init(&attr);
+ if(rc != 0)
+ {
+ throw ThreadSyscallException(__FILE__, __LINE__);
+ }
+
+ rc = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
+ if(rc != 0)
+ {
+ throw ThreadSyscallException(__FILE__, __LINE__);
+ }
+
+ rc = pthread_mutex_init(&_mutex, &attr);
+ if(rc != 0)
+ {
+ throw ThreadSyscallException(__FILE__, __LINE__);
+ }
+
+/*
#ifdef __linux__
const pthread_mutexattr_t attr = { PTHREAD_MUTEX_RECURSIVE_NP };
#else
@@ -99,6 +119,7 @@ IceUtil::RecMutex::RecMutex() :
{
throw ThreadSyscallException(__FILE__, __LINE__);
}
+*/
}
IceUtil::RecMutex::~RecMutex()