diff options
author | Jose <jose@zeroc.com> | 2012-07-17 16:53:05 +0200 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2012-07-17 16:53:05 +0200 |
commit | 9e833a51504b14ac852863dcad59a51e6025ce79 (patch) | |
tree | 6ca0297b6e6575fe4c6b2d48b606fef8132b9e5a /cpp/src/IceUtil/CountDownLatch.cpp | |
parent | implementing optional params in Java (diff) | |
parent | WinRT support (diff) | |
download | ice-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.cpp | 8 |
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) |