Re: Add pselect, ppoll system calls.

From: David Woodhouse
Date: Wed Aug 24 2005 - 19:05:43 EST


(Sorry for delayed response)

On Fri, 2005-08-05 at 14:49 +0200, Michael Kerrisk wrote:
> If I change your program to do something like the above, I also
> do not see a message from the handler -- i.e., it is not being
> called, and I'm pretty sure it should be.

Hm, yes. What happens is we come back out of the select() immediately
because of the pending signal, but on the way back to userspace we put
the old signal mask back... so by the time we check for it, there _is_
no (unblocked) signal pending.

If it's mandatory that we actually call the signal handler, then we need
to play tricks like sigsuspend() does to leave the old signal mask on
the stack frame. That's a bit painful atm because do_signal is different
between architectures.

--
dwmw2


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