Re: [PATCH] Futexes IV (Fast Lightweight Userspace Semaphores)

Martin Wirth
2002-03-15T08:43:00Z

Rusty Russell wrote:

>
>Discussions with Ulrich have reaffirmed my opinion that pthreads are
>crap. Hence I'm not all that tempted to warp the (nice, clean,
>usable) futex code too far to meet pthreads' wierd needs.
>
Crap or not, there are tons of software based on pthreads and at least
the NGPT team says that Linus
agreed to implement for necessary kernel-infrastructure for a full, fast
pthread implementation.

Now, if you want to implement mutexes and condition variables with the attribute
PTHREAD_PROCESS_SHARED then you need some functionality like the futexes.
Or NGPT will add his own syscalls to handle these things, which is simply
unnecessary double functionality.

>
>However, it's not too hard to implement condition variables using an
>unavailable mutex, if we go for "full" semaphores: ie. not just
>mutexes. It requires a bit more of a stretch for kernel atomic ops...
>
A full semaphore is nice, but not a full replacement for a waitqueue (or
a pthread condition variable brr..).
For the semaphore you always have to assure that the ups and downs are
balanced, what is not the case
for the condition variable.

Martin