X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2Fplatform%2Fwindows%2Fos-threads.h;h=df1af39e5f0c82e6daa918eb8b99fefafd515853;hb=6a3e78564b615c0fcb71887f93df79bf5d83a741;hp=88d0c1ee2269e484c2c27d6f3d36029a9e59d010;hpb=9f9c8c82288f9754d8d375c2e1dc0bf44292f290;p=deb_libcec.git diff --git a/src/lib/platform/windows/os-threads.h b/src/lib/platform/windows/os-threads.h index 88d0c1e..df1af39 100644 --- a/src/lib/platform/windows/os-threads.h +++ b/src/lib/platform/windows/os-threads.h @@ -57,9 +57,13 @@ namespace PLATFORM #define ConditionDelete(cond) ::CloseHandle(cond) #define ConditionSignal(cond) ::SetEvent(cond) #define ConditionBroadcast(cond) ::SetEvent(cond) - #define ConditionWait(cond, mutex, timeout) ::ResetEvent(cond); \ - MutexUnlock(mutex); \ - ::WaitForSingleObject(cond, timeout <= 0 ? 1000 : timeout); \ - MutexLock(mutex) + inline bool ConditionWait(condition_t cond, mutex_t mutex, uint32_t iTimeoutMsg) + { + ::ResetEvent(cond); + MutexUnlock(mutex); + DWORD iWaitReturn = ::WaitForSingleObject(cond, iTimeoutMsg <= 0 ? 1000 : iTimeoutMsg); + MutexLock(mutex); + return iWaitReturn == 0; + } #endif }