Browse Source

Tweak to runDispatchLoopUntil timekeeping.

tags/2021-05-28
jules 12 years ago
parent
commit
67341e7c4d
1 changed files with 5 additions and 10 deletions
  1. +5
    -10
      modules/juce_events/messages/juce_MessageManager.cpp

+ 5
- 10
modules/juce_events/messages/juce_MessageManager.cpp View File

@@ -94,8 +94,6 @@ void MessageManager::MessageBase::post()
#if JUCE_MODAL_LOOPS_PERMITTED && ! (JUCE_MAC || JUCE_IOS) #if JUCE_MODAL_LOOPS_PERMITTED && ! (JUCE_MAC || JUCE_IOS)
void MessageManager::runDispatchLoop() void MessageManager::runDispatchLoop()
{ {
jassert (isThisTheMessageThread()); // must only be called by the message thread
runDispatchLoopUntil (-1); runDispatchLoopUntil (-1);
} }
@@ -111,20 +109,17 @@ bool MessageManager::runDispatchLoopUntil (int millisecondsToRunFor)
const int64 endTime = Time::currentTimeMillis() + millisecondsToRunFor; const int64 endTime = Time::currentTimeMillis() + millisecondsToRunFor;
while ((millisecondsToRunFor < 0 || endTime > Time::currentTimeMillis())
&& ! quitMessageReceived)
while (! quitMessageReceived)
{ {
JUCE_TRY JUCE_TRY
{ {
if (! dispatchNextMessageOnSystemQueue (millisecondsToRunFor >= 0)) 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 JUCE_CATCH_EXCEPTION
if (millisecondsToRunFor >= 0 && Time::currentTimeMillis() >= currentTime)
break;
} }
return ! quitMessageReceived; return ! quitMessageReceived;


Loading…
Cancel
Save