Re: [PATCH v2] signal: Adjust error codes according to restore_user_sigmask()
From: Oleg Nesterov
Date: Thu May 23 2019 - 11:02:53 EST
On 05/23, David Laight wrote:
>
> I'm confused...
Me too. To clarify, the current code is obviously buggy, pselect/whatever
shouldn't return 0 (or anything else) if it was interrupted and we are going
to deliver the signal.
But it seems that Deepa has other concerns which I do not understand at all.
In any case, the signal_pending() check _inside_ restore_user_sigmask() can't
be right, with or without this patch. If nothing else, a signal can come right
after the check.
> So epoll() can return 'success' or 'timeout' (etc) and the handler for SIG_URG
> should still be called.
Not sure I understand... OK, suppose that you do
block-all-signals;
ret = pselect(..., sigmask(SIG_URG));
if it returns success/timeout then the handler for SIG_URG should not be called?
or I am totally confused...
Oleg.