This readme refers to the file thr-mach.c. Under mach, thread priorities are kinda strange-- any given thread has a MAXIMUM priority and a BASE priority. The BASE priority is the current priority of the thread and the MAXIMUM is the maximum possible priority the thread can assume. The developer can lower, but never raise the maximum priority. The gcc concept of thread priorities is that they run at one of three levels; interactive, background, and low. Under mach, this is translated to: interactive -- set priority to maximum background -- set priority to 2/3 of maximum low -- set priority to 1/3 of maximum This means that it is possible for a thread with the priority of interactive to actually run at a lower priority than another thread with a background, or even low, priority if the developer has modified the maximum priority.