From 67341e7c4d469828cdfcb72f562fa9b61ccf9ea4 Mon Sep 17 00:00:00 2001 From: jules Date: Thu, 23 May 2013 09:09:29 -0600 Subject: [PATCH] Tweak to runDispatchLoopUntil timekeeping. --- .../juce_events/messages/juce_MessageManager.cpp | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/modules/juce_events/messages/juce_MessageManager.cpp b/modules/juce_events/messages/juce_MessageManager.cpp index 96fb6b4f93..5ee02edd26 100644 --- a/modules/juce_events/messages/juce_MessageManager.cpp +++ b/modules/juce_events/messages/juce_MessageManager.cpp @@ -94,8 +94,6 @@ void MessageManager::MessageBase::post() #if JUCE_MODAL_LOOPS_PERMITTED && ! (JUCE_MAC || JUCE_IOS) void MessageManager::runDispatchLoop() { - jassert (isThisTheMessageThread()); // must only be called by the message thread - runDispatchLoopUntil (-1); } @@ -111,20 +109,17 @@ bool MessageManager::runDispatchLoopUntil (int millisecondsToRunFor) const int64 endTime = Time::currentTimeMillis() + millisecondsToRunFor; - while ((millisecondsToRunFor < 0 || endTime > Time::currentTimeMillis()) - && ! quitMessageReceived) + while (! quitMessageReceived) { JUCE_TRY { if (! dispatchNextMessageOnSystemQueue (millisecondsToRunFor >= 0)) - { - const int msToWait = (int) (endTime - Time::currentTimeMillis()); - - if (msToWait > 0) - Thread::sleep (jmin (5, msToWait)); - } + Thread::sleep (1); } JUCE_CATCH_EXCEPTION + + if (millisecondsToRunFor >= 0 && Time::currentTimeMillis() >= currentTime) + break; } return ! quitMessageReceived;