{"id":27240,"date":"2019-11-07T13:58:31","date_gmt":"2019-11-07T18:58:31","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=27240"},"modified":"2019-11-08T17:21:35","modified_gmt":"2019-11-08T22:21:35","slug":"runningboard-in-catalina","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2019\/11\/07\/runningboard-in-catalina\/","title":{"rendered":"RunningBoard in Catalina"},"content":{"rendered":"<p><a href=\"https:\/\/eclecticlight.co\/2019\/11\/07\/runningboard-a-new-subsystem-in-catalina-to-detect-errors\/\">Howard Oakley<\/a>:<\/p>\n<blockquote cite=\"https:\/\/eclecticlight.co\/2019\/11\/07\/runningboard-a-new-subsystem-in-catalina-to-detect-errors\/\">\n<p>Normally, assertions are used during development and debugging, then switched off when software is released. In macOS 10.15 and 10.15.1, at least, the subsystem for handling assertions, RunningBoard, is fully active in release versions, which suggests a substantial change in software practice by Apple.<\/p>\n<p>This subsystem consists of a small service, <tt>\/usr\/libexec\/runningboardd<\/tt>, and two Private Frameworks, RunningBoard.framework and RunningBoardServices.framework. There is also an AssertionServices.framework still, as in Mojave. Minimal access is provided from the public macOS interface, in the form of the <code>NSAssertionHandler<\/code> class and a few calls such as the <code>NSAssert()<\/code> macro. At present, RunningBoard and assertions are largely the preserve of macOS and don&rsquo;t appear to be intended for direct third-party use, except in some Objective-C code.<\/p>\n<\/blockquote>\n<p id=\"runningboard-in-catalina-update-2019-11-08\">Update (2019-11-08): I&rsquo;ve received a tip that RunningBoard is not related to <code>NSAssertionHandler<\/code>. It&rsquo;s intended for resource assertions, e.g. keeping the device alive during a download or temporarily using more memory.<\/p>","protected":false},"excerpt":{"rendered":"<p>Howard Oakley: Normally, assertions are used during development and debugging, then switched off when software is released. In macOS 10.15 and 10.15.1, at least, the subsystem for handling assertions, RunningBoard, is fully active in release versions, which suggests a substantial change in software practice by Apple. This subsystem consists of a small service, \/usr\/libexec\/runningboardd, and [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2019-11-07T18:58:34Z","apple_news_api_id":"034a9379-b551-470f-b098-2e6254b71fb8","apple_news_api_modified_at":"2019-11-08T22:21:50Z","apple_news_api_revision":"AAAAAAAAAAAAAAAAAAAAAQ==","apple_news_api_share_url":"https:\/\/apple.news\/AA0qTebVRRw-wmC5iVLcfuA","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[2],"tags":[30,1666,71],"class_list":["post-27240","post","type-post","status-publish","format-standard","hentry","category-technology","tag-mac","tag-macos-10-15","tag-programming"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/27240","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=27240"}],"version-history":[{"count":2,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/27240\/revisions"}],"predecessor-version":[{"id":27254,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/27240\/revisions\/27254"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=27240"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=27240"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=27240"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}