
20 Sep
2006
20 Sep
'06
9:28 a.m.
Anthony Williams wrote: [...]
If A always takes the slow path when we have another waiter, then we give the OS more scope for ensuring that both A and B get a fair stab.
That depends on the definition of "fair". Suppose you're running on uniprocessor and that A is a higher priority thread than B... why should it yield to B? Under POSIX rules (which define priority scheduling for scheduling allocation domains of size 1, aka "uniprocessor" domains), it shall not. With your handoff logic, A will yield to B. regards, alexander.