Re: pselect semantics - no EINTR with pending signals

From: Maciek Borzecki
Date: Mon Sep 12 2011 - 04:47:36 EST


On Sun, Sep 11, 2011 at 4:45 PM, Ulrich Drepper <drepper@xxxxxxxxx> wrote:
> On Fri, Sep 9, 2011 at 09:25, Maciek Borzecki <maciek.borzecki@xxxxxxxxx> wrote:
>> Now, I'm not sure about the semantics of pselect. I'm not saying that
>> the current version is right or wrong, but raising a question if this
>> is really expected (and it did happen to be quite unexpected for me).
>
> The standard says
>
>       If  sigmask  is not a null pointer, then the pselect() function
> shall replace the signal mask of the
>       process by the set of signals pointed to by sigmask before
> examining  the  descriptors,  and  shall
>       restore the signal mask of the process before returning.
>
> The way I read this the kernel does have to give the signal a chance
> to be delivered even if there are file descriptor ready for I/O.
I do agree, otherwise the signal delivery gating functionality of
pselect is not really useful.

I'd submit a patch, provided that current behavior is considered
incorrect. Hopefully userspace would not be affected to the degree
that things would get broken.

--
Maciek Borzecki
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/