summaryrefslogtreecommitdiff
path: root/cpp/src/IceUtil/CountDownLatch.cpp
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2012-07-17 16:53:05 +0200
committerJose <jose@zeroc.com>2012-07-17 16:53:05 +0200
commit9e833a51504b14ac852863dcad59a51e6025ce79 (patch)
tree6ca0297b6e6575fe4c6b2d48b606fef8132b9e5a /cpp/src/IceUtil/CountDownLatch.cpp
parentimplementing optional params in Java (diff)
parentWinRT support (diff)
downloadice-9e833a51504b14ac852863dcad59a51e6025ce79.tar.bz2
ice-9e833a51504b14ac852863dcad59a51e6025ce79.tar.xz
ice-9e833a51504b14ac852863dcad59a51e6025ce79.zip
Merge branch 'master' into encoding11
Conflicts: CHANGES cpp/src/Ice/EndpointI.cpp cpp/src/Ice/TcpConnector.cpp cpp/src/Ice/TcpConnector.h cpp/src/Ice/UdpConnector.cpp cpp/src/Ice/UdpConnector.h
Diffstat (limited to 'cpp/src/IceUtil/CountDownLatch.cpp')
-rw-r--r--cpp/src/IceUtil/CountDownLatch.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/cpp/src/IceUtil/CountDownLatch.cpp b/cpp/src/IceUtil/CountDownLatch.cpp
index abc3525f0c9..05e6be3d5df 100644
--- a/cpp/src/IceUtil/CountDownLatch.cpp
+++ b/cpp/src/IceUtil/CountDownLatch.cpp
@@ -19,7 +19,11 @@ IceUtilInternal::CountDownLatch::CountDownLatch(int count) :
}
#ifdef _WIN32
+# ifndef ICE_OS_WINRT
_event = CreateEvent(0, TRUE, FALSE, 0);
+# else
+ _event = CreateEventExW(0, 0, CREATE_EVENT_MANUAL_RESET, SEMAPHORE_ALL_ACCESS);
+# endif
if(_event == 0)
{
throw IceUtil::ThreadSyscallException(__FILE__, __LINE__, GetLastError());
@@ -58,7 +62,11 @@ IceUtilInternal::CountDownLatch::await() const
#ifdef _WIN32
while(InterlockedExchangeAdd(&_count, 0) > 0)
{
+# ifndef ICE_OS_WINRT
DWORD rc = WaitForSingleObject(_event, INFINITE);
+# else
+ DWORD rc = WaitForSingleObjectEx(_event, INFINITE, false);
+# endif
assert(rc == WAIT_OBJECT_0 || rc == WAIT_FAILED);
if(rc == WAIT_FAILED)