Messages in this thread | | | Subject | Re: [PATCH 5/5] futex: fix miss ordered wakeups | From | Daniel Walker <> | Date | Thu, 12 Jun 2008 15:09:58 -0700 |
| |
On Thu, 2008-06-12 at 21:55 +0200, Thomas Gleixner wrote: > Also your interpretation of the POSIX requirement is very > questionable: > > "If there are threads blocked on the mutex object referenced by mutex > when pthread_mutex_unlock() is called, resulting in the mutex > becoming available, the scheduling policy shall determine which > thread shall acquire the mutex."
The key is "scheduling policy" .. When the mutex is un-blocked the next task to run is the same as if the scheduler was selecting tasks from the list of blocked tasks .. For Linux, that means the highest priority tasks should be selected.. So it's no more acceptable for the scheduler to priority invert some tasks than it is for the futex to do it.
Daniel
| |