Re: [PATCH -mm 0/1] signal: simplify set_user_sigmask/restore_user_sigmask

From: Oleg Nesterov
Date: Thu Jun 06 2019 - 08:45:39 EST


On 06/06, David Laight wrote:
>
> Some of this code is hard to grep through :-)

I'd suggest to simply read the kernel code once and memorise it, after
that you will not need to use grep.

> > When signal handler returns it does sys_rt_sigreturn() which restores
> > the original mask saved in uc_sigmask.
>
> Does that mean that if 2 signals interrupt epoll_wait() only
> one of the signal handlers is run?

I'll assume that both signals were blocked before syscall and temporary
unblocked by pselect.

Quite contrary, they both will be delivered exactly because original mask
won't be restored until the 1st handler returns.

Unless, of course, the sigaction->sa_mask of the 1st signal blocks another
one.

Didn't I say you do not read my emails? I have already explained this to
you in this thread ;)

Oleg.