Listing 11: (a) RTLinux priority inversion test; (b) RTLinux priority inversion output.

(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