osx: disable app-nap programatically#5804
Closed
theuni wants to merge 2 commits intobitcoin:masterfrom
Closed
Conversation
For now, disable for the life of bitcoind and bitcon-qt to achieve the same behavior as before. More fine-grained behavior can come after more testing.
Member
There was a problem hiding this comment.
Please don't add these kind of one-use utilities in the top-level src directory. As I've suggested before, a an src/support or such directory would make sense.
Member
|
Sorry to say but I'm not entirely convinced of adding mac-specific code to the core code. In the GUI this is more acceptable (and even there we like to avoid it if possible), but I don't know here. The plist-based solution works, so this reeks a bit of "Don't fix it, it's not broken" to me. |
Member
Author
|
Ok. I was under the impression that some of our non-qt deps required objc and frameworks already, but looking at the link-line, that's not the case. So I agree with the no-objc argument. Closing as not worth it. |
Contributor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Currently for OSX we're disabling app-nap globally via the app's plist. If enabled, app-nap slows down performance badly for long-running activities. See #5041 for more background.
Disabling via the plist has a few draw-backs:
These changes add runtime functionality so that we can turn it on/off at-will. For now, it's enabled for the life-time of the programs, but that can be changed once we decide how to regulate it.
The CIdleInhibitor class is very ugly, but I assume that at some point we'll add similar features for other operating systems. I think this is nicer than osx ifdefs all over the place. I avoided inheritance and virtuals since we're interfacing with objc.
Needs testing on < 10.9 systems.