For people who prefer programming above documenting,
here is a simple small thing to do:
POSIX.1g and Austin document a pselect() call intended to
remove the race condition that is present when one wants
to wait on either a signal or some file descriptor.
(See also Stevens, Unix Network Programming, Volume 1, 2nd Ed.,
1998, p. 168 and the pselect.2 man page released today.)
Glibc 2.0 has a bad version (wrong number of parameters)
and glibc 2.1 a better version, but the whole purpose
of pselect is to avoid the race, and glibc cannot do that,
one needs kernel support.
So, probably someone should make a system call pselect
almost identical to the present select, adding a sigmask
parameter. (Or something more general.)
Andries
>For people who prefer programming above documenting,
>here is a simple small thing to do:
>
>POSIX.1g and Austin document a pselect() call intended to
>remove the race condition that is present when one wants
>to wait on either a signal or some file descriptor.
>(See also Stevens, Unix Network Programming, Volume 1, 2nd Ed.,
>1998, p. 168 and the pselect.2 man page released today.)
>Glibc 2.0 has a bad version (wrong number of parameters)
>and glibc 2.1 a better version, but the whole purpose
>of pselect is to avoid the race, and glibc cannot do that,
>one needs kernel support.
>So, probably someone should make a system call pselect
>almost identical to the present select, adding a sigmask
>parameter. (Or something more general.)
Well, pselect is not that interesting I suppose, ppoll would be my
favorite call to make use of.
--
Jens-Uwe Mager <pgp-mailto:62CFDB25>