示例#1
0
void IOWorkLoop::disableAllEventSources() const
{
    IOEventSource *event;

    for (event = eventChain; event; event = event->getNext())
		event->disable();
	
	/* NOTE: controlG is in passiveEventChain since it's an IOCommandGate */
    for (event = passiveEventChain; event; event = event->getNext())
        if (event != controlG)	// Don't disable the control gate
            event->disable();
}
示例#2
0
void IOWorkLoop::disableAllInterrupts() const
{
    IOEventSource *event;

    for (event = eventChain; event; event = event->getNext())
        if (OSDynamicCast(IOInterruptEventSource, event))
            event->disable();
}
示例#3
0
void IOWorkLoop::disableAllEventSources() const
{
    IOEventSource *event;

    for (event = eventChain; event; event = event->getNext())
        if (event != controlG)	// Don't disable the control gate
            event->disable();
}
示例#4
0
void IORunLoop::free()
{
	for(uint32_t i=0; i<_eventSources->count(); i++)
	{
		IOEventSource *source = (IOEventSource *)_eventSources->objectAtIndex(i);
		source->disable();
		source->_runLoop = 0;
	}

	_eventSources->release();
	_removedSources->release();

	super::free();
}