(a) Thread A pthread_suspend_np(thread_A); clock_gettime(CLOCK_REALTIME, &start); pthread_mutex_lock(&mutex); clock_gettime(CLOCK_REALTIME, &end); Thread B pthread_mutex_lock(&mutex); pthread_cond_wait(&cond, &mutex); pthread_wakeup_np(thread_A); do_something(SLEEP_PERIOD); pthread_mutex_unlock(&mutex); Thread C pthread_cond_signal(&cond); (b) Priority Inversion Recovery: (96h 0m 0s test) 64.0 us