Re: any fairness in NTPL pthread mutexes?

Joe Seigh
2005-10-31T19:13:04Z

Christopher Friesen wrote:
>
> I'm using NPTL.
>
> If I have a pthread mutex currently owned by a task, and two other tasks
> try to lock it, when the mutex is unlocked, are there any rules about
> the order in which the waiting tasks get the mutex (ie priority, FIFO,
> etc.)?
>

SCHED_OTHER.

If there are any waiting tasks when the mutex is unlocked, one of the waiting
tasks is woken up but not given lock ownership. It has to acquire the mutex
on its own. If it fails because another thread got the mutex first, then it
goes back to waiting. It's sometimes called an adaptive mutex. It's a little
faster than a FIFO mutex. It recovers from intermittent contention better.
With heavier contention, some threads in theory could starve, something that
wouldn't happen with a FIFO mutex.

--
Joe Seigh