From 1c36869e578cfcace4ed35616dd8465d0bfe6db3 Mon Sep 17 00:00:00 2001 From: Christopher Snowhill Date: Sat, 18 Jun 2022 23:02:24 -0700 Subject: [PATCH] [Audio Threads] Remove unused code This code turned out to be somewhat of a mistake to employ, so it's now being removed, and shall not be re-added, as it doesn't really work. Signed-off-by: Christopher Snowhill --- Audio/Chain/Node.m | 95 ---------------------------------------------- 1 file changed, 95 deletions(-) diff --git a/Audio/Chain/Node.m b/Audio/Chain/Node.m index d9d9e64b3..adbedc811 100644 --- a/Audio/Chain/Node.m +++ b/Audio/Chain/Node.m @@ -17,101 +17,6 @@ #import -// This workgroup attribute needs to be initialized. -static os_workgroup_attr_s attr = OS_WORKGROUP_ATTR_INITIALIZER_DEFAULT; - -// One nanosecond in seconds. -static const double kOneNanosecond = 1.0e9; - -// The I/O interval time in seconds. -static const double kIOIntervalTime = 0.020; - -// The clock identifier that specifies interval timestamps. -static const os_clockid_t clockId = OS_CLOCK_MACH_ABSOLUTE_TIME; - -// Enables time-contraint policy and priority suitable for low-latency, -// glitch-resistant audio. -BOOL SetPriorityRealtimeAudio(mach_port_t mach_thread_id) { - kern_return_t result; - - // Increase thread priority to real-time. - - // Please note that the thread_policy_set() calls may fail in - // rare cases if the kernel decides the system is under heavy load - // and is unable to handle boosting the thread priority. - // In these cases we just return early and go on with life. - - // Make thread fixed priority. - thread_extended_policy_data_t policy; - policy.timeshare = 0; // Set to 1 for a non-fixed thread. - result = thread_policy_set(mach_thread_id, - THREAD_EXTENDED_POLICY, - (thread_policy_t)&policy, - THREAD_EXTENDED_POLICY_COUNT); - if(result != KERN_SUCCESS) { - DLog(@"thread_policy_set extended policy failure: %d", result); - return NO; - } - - // Set to relatively high priority. - thread_precedence_policy_data_t precedence; - precedence.importance = 63; - result = thread_policy_set(mach_thread_id, - THREAD_PRECEDENCE_POLICY, - (thread_policy_t)&precedence, - THREAD_PRECEDENCE_POLICY_COUNT); - if(result != KERN_SUCCESS) { - DLog(@"thread_policy_set precedence policy failure: %d", result); - return NO; - } - - // Most important, set real-time constraints. - - // Define the guaranteed and max fraction of time for the audio thread. - // These "duty cycle" values can range from 0 to 1. A value of 0.5 - // means the scheduler would give half the time to the thread. - // These values have empirically been found to yield good behavior. - // Good means that audio performance is high and other threads won't starve. - const double kGuaranteedAudioDutyCycle = 0.75; - const double kMaxAudioDutyCycle = 0.85; - - // Define constants determining how much time the audio thread can - // use in a given time quantum. All times are in milliseconds. - - // About 128 frames @44.1KHz - const double kTimeQuantum = 2.9; - - // Time guaranteed each quantum. - const double kAudioTimeNeeded = kGuaranteedAudioDutyCycle * kTimeQuantum; - - // Maximum time each quantum. - const double kMaxTimeAllowed = kMaxAudioDutyCycle * kTimeQuantum; - - // Get the conversion factor from milliseconds to absolute time - // which is what the time-constraints call needs. - mach_timebase_info_data_t tb_info; - mach_timebase_info(&tb_info); - double ms_to_abs_time = - ((double)tb_info.denom / (double)tb_info.numer) * 1000000; - - thread_time_constraint_policy_data_t time_constraints; - time_constraints.period = kTimeQuantum * ms_to_abs_time; - time_constraints.computation = kAudioTimeNeeded * ms_to_abs_time; - time_constraints.constraint = kMaxTimeAllowed * ms_to_abs_time; - time_constraints.preemptible = 0; - - result = thread_policy_set(mach_thread_id, - THREAD_TIME_CONSTRAINT_POLICY, - (thread_policy_t)&time_constraints, - THREAD_TIME_CONSTRAINT_POLICY_COUNT); - if(result != KERN_SUCCESS) { - DLog(@"thread_policy_set constraint policy failure: %d", result); - return NO; - } - - return YES; -} - @implementation Node - (id)initWithController:(id)c previous:(id)p {