62 static void deleteInstance();
72 void runDispatchLoop();
81 void stopDispatchLoop();
87 #if JUCE_MODAL_LOOPS_PERMITTED || DOXYGEN
132 void setCurrentThreadAsMessageThread();
192 virtual void messageCallback() = 0;
231 void enter()
const noexcept;
276 bool tryEnter()
const noexcept;
281 void exit()
const noexcept;
289 void abort()
const noexcept;
302 struct BlockingMessage;
305 bool tryAcquire (
bool)
const noexcept;
306 void messageCallback()
const;
317 void deliverBroadcastMessage (
const String&);
333 Atomic<
int> quitMessagePosted { 0 }, quitMessageReceived { 0 };
334 Thread::ThreadID messageThreadId;
335 Atomic<Thread::ThreadID> threadWithLock;
337 static bool postMessageToSystemQueue (MessageBase*);
338 static void* exitModalLoopCallback (
void*);
339 static void doPlatformSpecificInitialisation();
340 static void doPlatformSpecificShutdown();
341 static bool dispatchNextMessageOnSystemQueue (
bool returnIfNoPendingMessages);
343 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MessageManager)