Пример #1
0
void Insomnia::stop(IOService* provider) {
    DLog("");

    if (_work_loop) {
        _work_loop->release();
        _work_loop = 0;
    }

    /* Reset the system to orginal state */
    stopPM();
    enable_lid_sleep();
    enable_idle_sleep();

    super::stop(provider);
}
void NoSleepExtension::stop( IOService * provider )
{
#ifdef DEBUG
    IOLog("%s[%p]::%s(%p)\n", getName(), this, __FUNCTION__,
		  provider);
#endif
    
    stopPM();
    
    saveState();
    
    setSleepSuppressionState(kNoSleepStateDisabled, kNoSleepModeCurrent);
    clamshellStateInterestNotifier->remove();
    
    if(delayTimer) {
        thread_call_cancel(delayTimer);
        thread_call_free(delayTimer);
    }
    
    setUserSleepDisabled(false);
    
    IOLog("%s: successfully stopped\n", getName());
    super::stop(provider);
}