pthread_{mutex,cond} & fifo/starvation/scheduling policy
Daniel Eischen
deischen at freebsd.org
Thu Jan 21 10:41:13 UTC 2010
On Thu, 21 Jan 2010, Bernard van Gastel wrote:
> In real world application such a proposed queue would work almost
> always, but I'm trying to exclude all starvation situations primarily
> (speed is less relevant). And although such a worker can execute it
> work and be scheduled fairly, the addition of the work to the queue
> can result in starvation (one of the threads trying to add to the
> queue could stall forever if the lock is heavily contested).
>
> Is this possible with POSIX thread stuff? Or is the only option to use
> IPC like message queues for this?
I don't see what your problem is if you are using mutexes
correctly. Adding or removing work to the queue should be
very quick; you lock the mutex, add or remove work to/from
the queue, signal the condition variable to wake up any
threads waiting for work (when adding work), and unlock the
mutex. That's it.
--
DE
More information about the freebsd-hackers
mailing list