+static bool IOUCIsBackgroundTask(task_t task, bool * isBg)
+{
+ kern_return_t kr;
+ task_category_policy_data_t info;
+ mach_msg_type_number_t count = TASK_CATEGORY_POLICY_COUNT;
+ boolean_t get_default = false;
+
+ kr = task_policy_get(current_task(),
+ TASK_CATEGORY_POLICY,
+ (task_policy_t) &info,
+ &count,
+ &get_default);
+
+ *isBg = ((KERN_SUCCESS == kr) && (info.role == TASK_THROTTLE_APPLICATION));
+ return (kr);
+}
+