Skip to content

Instantly share code, notes, and snippets.

@voncannon
Forked from steipete/PSPDFEnvironment.m
Last active August 29, 2015 14:15
Show Gist options
  • Save voncannon/e059b26f045a43311329 to your computer and use it in GitHub Desktop.
Save voncannon/e059b26f045a43311329 to your computer and use it in GitHub Desktop.
NSString *const PSPDFApplicationDidReceiveMemoryWarningNotification = @"PSPDFApplicationDidReceiveMemoryWarningNotification";
// Test with sudo memory_pressure -l critical. Don't forget to re-set afterwards!
__attribute__((constructor)) static void PSPDFInstallLowMemoryNotificationWarningMac(void) {
static dispatch_source_t source;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
source = dispatch_source_create(DISPATCH_SOURCE_TYPE_MEMORYPRESSURE, 0, DISPATCH_MEMORYPRESSURE_WARN|DISPATCH_MEMORYPRESSURE_CRITICAL, dispatch_get_main_queue());
dispatch_source_set_event_handler(source, ^{
dispatch_source_memorypressure_flags_t pressureLevel = dispatch_source_get_data(source);
[NSNotificationCenter.defaultCenter postNotificationName:PSPDFApplicationDidReceiveMemoryWarningNotification object:nil userInfo:@{@"pressure": @(pressureLevel)}];
});
dispatch_resume(source);
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment