Re: [PATCH] Futex Generalization Patch

From: Hubertus Franke (frankeh@watson.ibm.com)
Date: Wed Apr 10 2002 - 13:47:50 EST


On Wednesday 10 April 2002 03:30 pm, Bill Abt wrote:
> On 04/10/2002 at 02:10:59 PM AST, Hubertus Franke <frankeh@watson.ibm.com>
>
> wrote:
> > So you are OK with having only poll or select. That seems odd.
> > It seems you still need SIGIO on your fd to get the async notification.
>
> Duh... You're right. I forgot about that...
>
> Regards,
> Bill Abt
> Senior Software Engineer
> Next Generation POSIX Threading for Linux
> IBM Cambridge, MA, USA 02142
> Ext: +(00)1 617-693-1591
> T/L: 693-1591 (M/W/F)
> T/L: 253-9938 (T/Th/Eves.)
> Cell: +(00)1 617-803-7514
> babt@us.ibm.com or abt@us.ibm.com
> http://oss.software.ibm.com/developerworks/opensource/pthreads

Yes,

The current interface is

(A)
async wait:
        sys_futex (uaddr, FUTEX_AWAIT, value, (struct timespec*) sig);
upon signal handling
        sys_futex(uaddrs[], FUTEX_WAIT, size, NULL);
        to retrieve the uaddrs that got woken up...

If you simply want a notification with SIGIO (or whatever you desire)
We can change that to
(A)
sys_futex(uaddr, FUTEX_WAIT, value, (truct timespec*) fd);

I send a SIGIO and you can request via ioctl or read the pending
notifications from fd.
(B) { struct futex *notarray[N]
              int n = read( futex_fd, (void**)notarray,
                            N*sizeof(struct futex));
        }
I am mainly concerned that SIGIO can be overloaded in a thread package ?
How would you know whether a SIGIO came from the futex or from other file
handle.

That is your call to make. Let me know !!!

-- 
-- Hubertus Franke  (frankeh@watson.ibm.com)
-
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/



This archive was generated by hypermail 2b29 : Mon Apr 15 2002 - 22:00:17 EST