]> git.ipfire.org Git - thirdparty/cups.git/blobdiff - scheduler/sysman.c
Merge changes from CUPS 1.5b1-r9798.
[thirdparty/cups.git] / scheduler / sysman.c
index 9c323439fb6eab76b360afa58178427c65062230..2df34921fa23cbb777ebf236bacd41d5ff2841a4 100644 (file)
@@ -216,11 +216,15 @@ cupsdSetBusyState(void)
 
 #ifdef kIOPMAssertionTypeDenySystemSleep
     if ((busy & 2) && !dark_wake)
+    {
+      cupsdLogMessage(CUPSD_LOG_DEBUG2, "Asserting dark wake.");
       IOPMAssertionCreateWithName(kIOPMAssertionTypeDenySystemSleep,
                                  kIOPMAssertionLevelOn,
                                  CFSTR("org.cups.cupsd"), &dark_wake);
+    }
     else if (!(busy & 2) && dark_wake)
     {
+      cupsdLogMessage(CUPSD_LOG_DEBUG2, "Releasing dark wake assertion.");
       IOPMAssertionRelease(dark_wake);
       dark_wake = 0;
     }
@@ -877,6 +881,15 @@ sysUpdate(void)
 
       cupsdCleanDirty();
 
+#ifdef kIOPMAssertionTypeDenySystemSleep
+     /*
+      * Tell the OS it is OK to sleep when we remove our assertion...
+      */
+
+      IOAllowPowerChange(sysevent.powerKernelPort,
+                         sysevent.powerNotificationID);
+
+#else
      /*
       * If we have no printing jobs, allow the power change immediately.
       * Otherwise set the SleepJobs time to 15 seconds in the future when
@@ -920,6 +933,7 @@ sysUpdate(void)
                             sysevent.powerNotificationID);
        }
       }
+#endif /* kIOPMAssertionTypeDenySystemSleep */
     }
 
     if (sysevent.event & SYSEVENT_WOKE)