From cae0e6eb796889b78644e924c8e171ab3764df27 Mon Sep 17 00:00:00 2001 From: cxl Date: Thu, 19 Dec 2019 12:14:23 +0000 Subject: [PATCH] Core: ConditionVariable::Wait(timeout_ms) in Win32 git-svn-id: svn://ultimatepp.org/upp/trunk@13774 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/Core/Mt.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/uppsrc/Core/Mt.cpp b/uppsrc/Core/Mt.cpp index b06ef455a..894cb8d9f 100644 --- a/uppsrc/Core/Mt.cpp +++ b/uppsrc/Core/Mt.cpp @@ -540,10 +540,10 @@ void ConditionVariable::Wait(Mutex& m) } } -void ConditionVariable::Wait(Mutex& m, int timeout_ms) +bool ConditionVariable::Wait(Mutex& m, int timeout_ms) { if(InitializeConditionVariable) - SleepConditionVariableCS(cv, &m.section, timeout_ms); + return SleepConditionVariableCS(cv, &m.section, timeout_ms); else { // WindowsXP implementation static thread_local byte buffer[sizeof(WaitingThread)]; // only one Wait per thread is possible WaitingThread *w = new(buffer) WaitingThread; @@ -557,9 +557,10 @@ void ConditionVariable::Wait(Mutex& m, int timeout_ms) tail = w; } m.Leave(); - w->sem.Wait(timeout_ms); + bool r = w->sem.Wait(timeout_ms); m.Enter(); w->WaitingThread::~WaitingThread(); + return r; } }