lkml.org 
[lkml]   [2002]   [Aug]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: CLONE_DETACHED and exit notification (was user-vm-unlock-2.5.31-A2)
Ingo Molnar wrote:
> there are some practical problems with making the notification a futex,
> not a simple flag. Eg. futexes right now do not force any lock-counter
> format upon userspace. Futexes can be used as mutexes, conditional
> variables, read-write locks, all of which have different atomic counter
> formats and uses.

Agreed; futexes are lovely because they are so generic.

> By doing the TID-release notification via a futex the actual format of
> the lock is forced, which is a cleanliness problem. Just writing $0 to
> the TID pointer is a robust thing on the other hand.

Quite. There is no lock; the the futex is used in its purest form, as
a wait queue.

TID = thread is alive
zero = thread is gone

There's no "lock-counter format", because this isn't a lock -- it's a
wakeup. There no need for atomicity either, because the listener only
reads, it doesn't write. I'm not sure if a PROT_SEM word is required
for cache coherency, but if it is, your current implementation requires
one too.

Here's a synchronous thread_join-style waiter; it is architecture-neutral:

while (tid = *tid_address) != 0)
retval = sys_futex (tid_address, FUTEX_WAIT, tid, 0);

-- Jamie
-
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/

\
 
 \ /
  Last update: 2005-03-22 13:28    [W:0.081 / U:0.172 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site