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.