Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: "Kicking" the screensaver/display timers



UpdateSystemActivity() is seriously p***ing me off. Bloody iTunes uses it all of the time and it totally freaks out my AntiRSI timers. Apps that blow out fake system activity are just broken now.

My $0.02

Godfrey

On 2008-07-22, at 10:26 , Steve Checkoway wrote:


On Jul 21, 2008, at 1:47 PM, Ethan Bold wrote:

Please don't use UpdateSystemActivity(). It will work, but IOPMAssertionCreateWithName()* is a better option.

- UpdateSystemActivity() is in the Carbon framework; using it may cause you to unnecessarily link with this large & bulky framework, affecting app launch times and memory usage.

Already using it so that's not a downside.

- User's cant identify which process is keeping the display awake when you call UpdateSystemActivity. If you use IOPMAssertionCreateWithName(), OS X can keep track of which processes are responsible (visible by running "pmset -g").

First time I've ever heard of pmset, but interesting.

- You only have to create an assertion once to keep the display awake; you need to call UpdateSystemActivity() once every 25-30 seconds to cause a fake keyboard press. It's cleaner code for you.

That is handy.

Until now, UpdateSystemActivity() was the only game in town, but please don't use it anymore! We've got a better alternative.

IOPMAssertionCreateWithName() doesn't seem to exist anywhere (google knows nothing about it). IOPMAssertionCreate() doesn't seem to exist in pre-10.5 and since I see no need to restrict to 10.5, that doesn't work for me.


* Prefer IOPMAssertionCreateWithName(), which lets you pass a string describing the purpose of the assertion (for debugging & diagnostic use for Apple & yourself) over the vanilla IOPMASsertionCreate. If you invoke IOPMAssertionCreate from multiple points in your code; naming the assertions differently will help identify leaks.


As I said, IOPMAssertionCreateWithName() doesn't seem to exist. Xcode doesn't know about it, google doesn't know about it, I can't find it on my system:
$ find /System/Library/Frameworks -name '*.h' -print0|xargs -0 grep IOPMAssertionCreateWithName
prints nothing.


--
Steve Checkoway





_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/darwin-dev/email@hidden

This email sent to email@hidden

_______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-dev/email@hidden

This email sent to email@hidden
References: 
 >"Kicking" the screensaver/display timers (From: "Shayne Wissler" <email@hidden>)
 >Re: "Kicking" the screensaver/display timers (From: Steve Checkoway <email@hidden>)
 >Re: "Kicking" the screensaver/display timers (From: Ethan Bold <email@hidden>)
 >Re: "Kicking" the screensaver/display timers (From: Steve Checkoway <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.