#endif // wxUSE_EVENTLOOP_SOURCE
-void wxObserverCallBack(CFRunLoopObserverRef observer, CFRunLoopActivity activity, void *info)
+extern "C" void wxObserverCallBack(CFRunLoopObserverRef observer, CFRunLoopActivity activity, void *info)
{
wxCFEventLoop * eventloop = static_cast<wxCFEventLoop *>(info);
if ( eventloop )
bzero( &ctxt, sizeof(ctxt) );
ctxt.info = this;
m_runLoopObserver = CFRunLoopObserverCreate( kCFAllocatorDefault, kCFRunLoopBeforeTimers | kCFRunLoopBeforeWaiting , true /* repeats */, 0,
- wxObserverCallBack, &ctxt );
+ wxObserverCallBack, &ctxt );
CFRunLoopAddObserver(m_runLoop, m_runLoopObserver, kCFRunLoopCommonModes);
+ CFRelease(m_runLoopObserver);
}
wxCFEventLoop::~wxCFEventLoop()
void wxCFEventLoop::WakeUp()
{
- extern void wxMacWakeUp();
-
- wxMacWakeUp();
+ CFRunLoopWakeUp(m_runLoop);
}
bool wxCFEventLoop::YieldFor(long eventsToProcess)