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)
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;


Loading…
Cancel
Save