Gerriet M. Denkmann
On 2 Dec 2017, at 06:51, Jens Alfke <jens@...> wrote:Let’s define sleeping = time between NSWorkspaceWillSleepNotification and NSWorkspaceDidWakeNotification (or the equivalent kIOMessageSystemWillSleep and kIOMessageSystemHasPoweredOn);On Nov 23, 2017, at 1:45 AM, Gerriet M. Denkmann <g@...> wrote:If a process is doing anything, it’s awake. Asking “is my process asleep?” is kind of like asking a person “are you asleep?” :)
and awake = not sleeping.
Active is defined as: CPU does something, e.g. runs my app.
So whenever my app is active, it makes sense for it to ask whether it is sleeping.
Yes; this is what I did: make a SleepThread (subclass of NSThread) with a CFRunLoop which registers for IORegisterForSystemPower.There is IORegisterForSystemPower which sends seep/wake notifications but needs a runloop.You can start a background thread and run a runloop on it.
Now my app can ask this SleepThread whether it is sleeping or not.
Yes, this seems to be the correct term.The problem: between NSWorkspaceWillSleepNotification and NSWorkspaceDidWakeNotification this (as any app) will be active from time to time (every few minutes it will be active for almost a minute), which messes up the internals of chronyd.Are you talking about Power Nap mode, where the computer can wake up periodically when it’s asleep to fetch email, etc?
When the computer is active in Power Nap mode (while still sleeping according to my definition above) all apps will run for a short period - not only the ones fetching email etc.