25 #ifndef JUCE_OSX_MESSAGEQUEUE_H_INCLUDED 26 #define JUCE_OSX_MESSAGEQUEUE_H_INCLUDED 35 #if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_4 && ! JUCE_IOS 36 runLoop = CFRunLoopGetMain();
38 runLoop = CFRunLoopGetCurrent();
41 CFRunLoopSourceContext sourceContext;
43 sourceContext.info =
this;
44 sourceContext.perform = runLoopSourceCallback;
45 runLoopSource = CFRunLoopSourceCreate (kCFAllocatorDefault, 1, &sourceContext);
46 CFRunLoopAddSource (runLoop, runLoopSource, kCFRunLoopCommonModes);
51 CFRunLoopRemoveSource (runLoop, runLoopSource, kCFRunLoopCommonModes);
52 CFRunLoopSourceInvalidate (runLoopSource);
53 CFRelease (runLoopSource);
58 messages.
add (message);
59 CFRunLoopSourceSignal (runLoopSource);
60 CFRunLoopWakeUp (runLoop);
66 CFRunLoopSourceRef runLoopSource;
68 bool deliverNextMessage()
72 if (nextMessage ==
nullptr)
79 nextMessage->messageCallback();
87 void runLoopCallback()
89 for (
int i = 4; --i >= 0;)
90 if (! deliverNextMessage())
93 CFRunLoopSourceSignal (runLoopSource);
94 CFRunLoopWakeUp (runLoop);
97 static void runLoopSourceCallback (
void*
info)
103 #endif // JUCE_OSX_MESSAGEQUEUE_H_INCLUDED Definition: juce_osx_MessageQueue.h:30
void post(MessageManager::MessageBase *const message)
Definition: juce_osx_MessageQueue.h:56
MessageQueue()
Definition: juce_osx_MessageQueue.h:33
struct backing_store_struct * info
Definition: jmemsys.h:183
Definition: juce_MessageManager.h:173
void zerostruct(Type &structure) noexcept
Definition: juce_Memory.h:38
~MessageQueue()
Definition: juce_osx_MessageQueue.h:49
Definition: juce_ReferenceCountedObject.h:227
#define JUCE_AUTORELEASEPOOL
ObjectClassPtr removeAndReturn(const int indexToRemove)
Definition: juce_ReferenceCountedArray.h:588
ObjectClass * add(ObjectClass *const newObject) noexcept
Definition: juce_ReferenceCountedArray.h:321