THREADS.MACH   [plain text]

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.