summaryrefslogtreecommitdiff
path: root/cpp/src/IceUtil/Cond.cpp
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2012-08-09 15:40:44 -0400
committerBernard Normier <bernard@zeroc.com>2012-08-09 15:40:44 -0400
commit87ae1f009ce03d18e459ad8d66050da9a9f63144 (patch)
tree40118e7d5f3ce44688de309d6c8c4e13a26b6ac3 /cpp/src/IceUtil/Cond.cpp
parentWinRT Endpoint fixes for encoding11 (diff)
downloadice-87ae1f009ce03d18e459ad8d66050da9a9f63144.tar.bz2
ice-87ae1f009ce03d18e459ad8d66050da9a9f63144.tar.xz
ice-87ae1f009ce03d18e459ad8d66050da9a9f63144.zip
Added native cond-var implementation on Windows (bug #2667)
for Visual Studio 2012 and up Removed all #define and checks for _WIN32_WINNT (no longer needed) Misc build fixes for Visual Studio IceUtil/Config.h cleanup (minor)
Diffstat (limited to 'cpp/src/IceUtil/Cond.cpp')
-rw-r--r--cpp/src/IceUtil/Cond.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/cpp/src/IceUtil/Cond.cpp b/cpp/src/IceUtil/Cond.cpp
index a0f71460f1e..6cfa0700838 100644
--- a/cpp/src/IceUtil/Cond.cpp
+++ b/cpp/src/IceUtil/Cond.cpp
@@ -15,6 +15,31 @@
#ifdef _WIN32
+# ifdef ICE_HAS_WIN32_CONDVAR
+
+IceUtil::Cond::Cond()
+{
+ InitializeConditionVariable(&_cond);
+}
+
+IceUtil::Cond::~Cond()
+{
+}
+
+void
+IceUtil::Cond::signal()
+{
+ WakeConditionVariable(&_cond);
+}
+
+void
+IceUtil::Cond::broadcast()
+{
+ WakeAllConditionVariable(&_cond);
+}
+
+# else
+
IceUtilInternal::Semaphore::Semaphore(long initial)
{
#ifndef ICE_OS_WINRT
@@ -305,6 +330,8 @@ IceUtil::Cond::timedDowait(const Time& timeout) const
}
}
+# endif // ICE_HAS_WIN32_CONDVAR
+
#else
IceUtil::Cond::Cond()