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/Cond.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/Cond.cpp')
-rw-r--r-- | cpp/src/IceUtil/Cond.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/cpp/src/IceUtil/Cond.cpp b/cpp/src/IceUtil/Cond.cpp index 22330c25916..a0f71460f1e 100644 --- a/cpp/src/IceUtil/Cond.cpp +++ b/cpp/src/IceUtil/Cond.cpp @@ -17,7 +17,11 @@ IceUtilInternal::Semaphore::Semaphore(long initial) { +#ifndef ICE_OS_WINRT _sem = CreateSemaphore(0, initial, 0x7fffffff, 0); +#else + _sem = CreateSemaphoreExW(0, initial, 0x7fffffff, 0, 0, SEMAPHORE_ALL_ACCESS); +#endif if(_sem == INVALID_HANDLE_VALUE) { throw IceUtil::ThreadSyscallException(__FILE__, __LINE__, GetLastError()); @@ -32,7 +36,11 @@ IceUtilInternal::Semaphore::~Semaphore() void IceUtilInternal::Semaphore::wait() const { +#ifndef ICE_OS_WINRT DWORD rc = WaitForSingleObject(_sem, INFINITE); +#else + DWORD rc = WaitForSingleObjectEx(_sem, INFINITE, true); +#endif if(rc != WAIT_OBJECT_0) { throw IceUtil::ThreadSyscallException(__FILE__, __LINE__, GetLastError()); @@ -48,7 +56,11 @@ IceUtilInternal::Semaphore::timedWait(const IceUtil::Time& timeout) const throw IceUtil::InvalidTimeoutException(__FILE__, __LINE__, timeout); } +#ifndef ICE_OS_WINRT DWORD rc = WaitForSingleObject(_sem, static_cast<DWORD>(msTimeout)); +#else + DWORD rc = WaitForSingleObjectEx(_sem, static_cast<DWORD>(msTimeout), true); +#endif if(rc != WAIT_TIMEOUT && rc != WAIT_OBJECT_0) { throw IceUtil::ThreadSyscallException(__FILE__, __LINE__, GetLastError()); |