diff options
Diffstat (limited to 'opentrack/appnap_mac.mm')
| -rw-r--r-- | opentrack/appnap_mac.mm | 47 | 
1 files changed, 47 insertions, 0 deletions
| diff --git a/opentrack/appnap_mac.mm b/opentrack/appnap_mac.mm new file mode 100644 index 00000000..3e0bea73 --- /dev/null +++ b/opentrack/appnap_mac.mm @@ -0,0 +1,47 @@ +#ifdef __APPLE__ + +#import <Foundation/Foundation.h> + +/** + * Used to prevent macOS from throttling the opentrack process. + */ + +id token = nil; + +void disable_appnap_start(); +void disable_appnap_stop(); + +void disable_appnap_start() { + +    if(token){ +        NSLog(@"disable_appnap_start: already started"); +        return; +    } + + +    NSLog(@"disable_appnap_start"); +    token = [[NSProcessInfo processInfo] +      beginActivityWithOptions: NSActivityUserInitiatedAllowingIdleSystemSleep +      reason: @"Disable AppNap"]; +    [token retain]; +} + +void disable_appnap_stop() { +    if(!token){ +        NSLog(@"disable_appnap_start: not started"); +        return; +    } + +    NSLog(@"disable_appnap_stop"); +    [[NSProcessInfo processInfo] endActivity:token]; +    [token release]; +    token = nil; +} + + + +#endif + + + + | 
