summaryrefslogtreecommitdiff
path: root/scheduler/sysman.c
diff options
context:
space:
mode:
authormsweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be>2012-01-19 16:53:50 +0000
committermsweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be>2012-01-19 16:53:50 +0000
commitdcb445bcf3e9ec2efd56550263052aca70beb08e (patch)
tree9a0d2260f2bbfdc8a6aa561c138baca1a58f8228 /scheduler/sysman.c
parent9c80ffa289171a48b10cbda2098289ed0c7b96cc (diff)
downloadcups-dcb445bcf3e9ec2efd56550263052aca70beb08e.tar.gz
Merge changes from CUPS 1.6svn-r10188, including changes for <rdar://problem/10127258> CUPS 1.6: New printer/printing APIs
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3618 a1ca3aef-8c08-0410-bb20-df032aa958be
Diffstat (limited to 'scheduler/sysman.c')
-rw-r--r--scheduler/sysman.c25
1 files changed, 20 insertions, 5 deletions
diff --git a/scheduler/sysman.c b/scheduler/sysman.c
index c57d6e4fb..6638db5ea 100644
--- a/scheduler/sysman.c
+++ b/scheduler/sysman.c
@@ -870,13 +870,18 @@ sysUpdate(void)
#ifdef kIOPMAssertionTypeDenySystemSleep
/*
- * Tell the OS it is OK to sleep when we remove our assertion...
+ * Remove our assertion as needed since the user wants the system to
+ * sleep (different than idle sleep)...
*/
- IOAllowPowerChange(sysevent.powerKernelPort,
- sysevent.powerNotificationID);
+ if (dark_wake)
+ {
+ cupsdLogMessage(CUPSD_LOG_DEBUG, "Releasing dark wake assertion.");
+ IOPMAssertionRelease(dark_wake);
+ dark_wake = 0;
+ }
+#endif /* kIOPMAssertionTypeDenySystemSleep */
-#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,7 +925,6 @@ sysUpdate(void)
sysevent.powerNotificationID);
}
}
-#endif /* kIOPMAssertionTypeDenySystemSleep */
}
if (sysevent.event & SYSEVENT_WOKE)
@@ -929,6 +933,17 @@ sysUpdate(void)
IOAllowPowerChange(sysevent.powerKernelPort,
sysevent.powerNotificationID);
Sleeping = 0;
+
+#ifdef kIOPMAssertionTypeDenySystemSleep
+ if (cupsArrayCount(PrintingJobs) > 0 && !dark_wake)
+ {
+ cupsdLogMessage(CUPSD_LOG_DEBUG, "Asserting dark wake.");
+ IOPMAssertionCreateWithName(kIOPMAssertionTypeDenySystemSleep,
+ kIOPMAssertionLevelOn,
+ CFSTR("org.cups.cupsd"), &dark_wake);
+ }
+#endif /* kIOPMAssertionTypeDenySystemSleep */
+
cupsdCheckJobs();
}