Messages in this thread | | | Date | Mon, 21 May 2007 20:15:48 +0200 | From | Eric Dumazet <> | Subject | Re: second, bigger problem with private futexes |
| |
Ulrich Drepper a écrit : > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > This one is a big problem: > > If I understand the code correctly, a FUTEX_CMP_REQUEUE from a private > futex will add the waiters to the other futex as a private futex. And > similarly for shared. > > I.e., it is not possible to have one futex private and the other shared. > This is a huge problem. The shared/private status of a conditional > variable and the mutex used with it don't have to match. But this is > where FUTEX_CMP_REQUEUE is used. > > If this is not changed (assuming I'm right with my analysis of the > kernel code) this means mutexes and condvars will not be able to use > private futexes.
Do you mean POSIX allowed to mix PROCESS_PRIVATE and PROCESS_SHARED condvar and mutexes ? Seems silly to me :(
> > What would be needed is an additional parameter for FUTEX_CMP_REQUEUE > and FUTEX_CMP_REQUEUE_PI which specifies the state (shared/private) of > the target futex. The original futex' state is encoded in the command > (the FUTEX_PRIVATE_FLAG ORed to FUTEX_CMP_REQUEUE*). >
Well, I guess it should be easy to add this if really necessary.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |