VirtualBox

Ignore:
Timestamp:
Jun 9, 2010 6:28:05 PM (15 years ago)
Author:
vboxsync
Message:

plevent.c: Acknowledge the native queue on darwin so that we don't end up spinning when using EventQueue::processEventQueue in a state checking loop (like in testdriver.base.waitForTasks).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/libs/xpcom18a4/xpcom/threads/plevent.c

    r26449 r30135  
    171171    CFRunLoopSourceRef  mRunLoopSource;
    172172    CFRunLoopRef        mMainRunLoop;
     173    CFStringRef         mRunLoopModeStr;                                                                /* vbox */
    173174#elif defined(MAC_USE_CARBON_EVENT)
    174175    EventHandlerUPP     eventHandlerUPP;
     
    946947
    947948    CFRunLoopRemoveSource(self->mMainRunLoop, self->mRunLoopSource, kCFRunLoopCommonModes);
     949    CFRunLoopRemoveSource(self->mMainRunLoop, self->mRunLoopSource, self->mRunLoopModeStr);             /* vbox */
    948950    CFRelease(self->mRunLoopSource);
    949951    CFRelease(self->mMainRunLoop);
     952    CFRelease(self->mRunLoopModeStr);                                                                   /* vbox */
    950953
    951954#elif defined(MAC_USE_CARBON_EVENT)
     
    13351338        return PR_SUCCESS;
    13361339    return PR_FAILURE;
     1340#elif defined(MAC_USE_CFRUNLOOPSOURCE)                                                                  /* vbox */
     1341                                                                                                        /* vbox */
     1342    CFRunLoopRunInMode(self->mRunLoopModeStr, 0.0, 1);                                                  /* vbox */
     1343    return PR_SUCCESS;                                                                                  /* vbox */
    13371344#else
    13381345
     
    16371644    CFRunLoopAddSource(eventQueue->mMainRunLoop, eventQueue->mRunLoopSource, kCFRunLoopCommonModes);
    16381645
     1646    /* Add it again but with a unique mode name so we can acknowledge it
     1647       without processing any other message sources. */
     1648    {                                                                                                   /* vbox */
     1649        char szModeName[80];                                                                            /* vbox */
     1650        snprintf(szModeName, sizeof(szModeName), "VBoxXPCOMQueueMode-%p", eventQueue);                  /* vbox */
     1651        eventQueue->mRunLoopModeStr = CFStringCreateWithCString(kCFAllocatorDefault,                    /* vbox */
     1652                                                                szModeName, kCFStringEncodingASCII);    /* vbox */
     1653        CFRunLoopAddSource(eventQueue->mMainRunLoop,                                                    /* vbox */
     1654                           eventQueue->mRunLoopSource, eventQueue->mRunLoopModeStr);                    /* vbox */
     1655    }                                                                                                   /* vbox */
     1656
    16391657#elif defined(MAC_USE_CARBON_EVENT)
    16401658    eventQueue->eventHandlerUPP = NewEventHandlerUPP(_md_EventReceiverProc);
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette