summaryrefslogtreecommitdiff
path: root/cpp/src/IceUtil/RecMutex.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceUtil/RecMutex.cpp')
-rw-r--r--cpp/src/IceUtil/RecMutex.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/cpp/src/IceUtil/RecMutex.cpp b/cpp/src/IceUtil/RecMutex.cpp
index 9558a6fed2b..46209f55bc6 100644
--- a/cpp/src/IceUtil/RecMutex.cpp
+++ b/cpp/src/IceUtil/RecMutex.cpp
@@ -79,6 +79,21 @@ IceUtil::RecMutex::unlock() const
}
}
+# ifdef ICE_HAS_WIN32_CONDVAR
+void
+IceUtil::RecMutex::unlock(LockState& state) const
+{
+ state.mutex = &_mutex;
+ state.count = _count;
+ _count = 0;
+}
+
+void
+IceUtil::RecMutex::lock(LockState& state) const
+{
+ _count = state.count;
+}
+# else
void
IceUtil::RecMutex::unlock(LockState& state) const
{
@@ -93,6 +108,7 @@ IceUtil::RecMutex::lock(LockState& state) const
EnterCriticalSection(&_mutex);
_count = state.count;
}
+# endif
#else