|
|
|
@@ -78,31 +78,10 @@ bool MessageManager::MessageBase::post() |
|
|
|
}
|
|
|
|
|
|
|
|
//==============================================================================
|
|
|
|
#if JUCE_MODAL_LOOPS_PERMITTED && ! (JUCE_MAC || JUCE_IOS)
|
|
|
|
bool MessageManager::runDispatchLoopUntil (int millisecondsToRunFor)
|
|
|
|
{
|
|
|
|
jassert (isThisTheMessageThread()); // must only be called by the message thread
|
|
|
|
|
|
|
|
auto endTime = Time::currentTimeMillis() + millisecondsToRunFor;
|
|
|
|
|
|
|
|
while (quitMessageReceived.get() == 0)
|
|
|
|
{
|
|
|
|
JUCE_TRY
|
|
|
|
{
|
|
|
|
if (! dispatchNextMessageOnSystemQueue (millisecondsToRunFor >= 0))
|
|
|
|
Thread::sleep (1);
|
|
|
|
}
|
|
|
|
JUCE_CATCH_EXCEPTION
|
|
|
|
|
|
|
|
if (millisecondsToRunFor >= 0 && Time::currentTimeMillis() >= endTime)
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
return quitMessageReceived.get() == 0;
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if ! (JUCE_MAC || JUCE_IOS || JUCE_ANDROID)
|
|
|
|
// implemented in platform-specific code (juce_linux_Messaging.cpp and juce_win32_Messaging.cpp)
|
|
|
|
bool dispatchNextMessageOnSystemQueue (bool returnIfNoPendingMessages);
|
|
|
|
|
|
|
|
class MessageManager::QuitMessage : public MessageManager::MessageBase
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
@@ -138,6 +117,30 @@ void MessageManager::stopDispatchLoop() |
|
|
|
quitMessagePosted = true;
|
|
|
|
}
|
|
|
|
|
|
|
|
#if JUCE_MODAL_LOOPS_PERMITTED
|
|
|
|
bool MessageManager::runDispatchLoopUntil (int millisecondsToRunFor)
|
|
|
|
{
|
|
|
|
jassert (isThisTheMessageThread()); // must only be called by the message thread
|
|
|
|
|
|
|
|
auto endTime = Time::currentTimeMillis() + millisecondsToRunFor;
|
|
|
|
|
|
|
|
while (quitMessageReceived.get() == 0)
|
|
|
|
{
|
|
|
|
JUCE_TRY
|
|
|
|
{
|
|
|
|
if (! dispatchNextMessageOnSystemQueue (millisecondsToRunFor >= 0))
|
|
|
|
Thread::sleep (1);
|
|
|
|
}
|
|
|
|
JUCE_CATCH_EXCEPTION
|
|
|
|
|
|
|
|
if (millisecondsToRunFor >= 0 && Time::currentTimeMillis() >= endTime)
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
return quitMessageReceived.get() == 0;
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
//==============================================================================
|
|
|
|
|