View | Details | Raw Unified | Return to bug 219228
Collapse All | Expand All

(-)b/sys/kern/kern_sig.c (-1 / +3 lines)
Lines 2646-2652 reschedule_signals(struct proc *p, sigset_t block, int flags) Link Here
2646
		signotify(td);
2646
		signotify(td);
2647
		if (!(flags & SIGPROCMASK_PS_LOCKED))
2647
		if (!(flags & SIGPROCMASK_PS_LOCKED))
2648
			mtx_lock(&ps->ps_mtx);
2648
			mtx_lock(&ps->ps_mtx);
2649
		if (p->p_flag & P_TRACED || SIGISMEMBER(ps->ps_sigcatch, sig))
2649
		if (p->p_flag & P_TRACED ||
2650
		    (SIGISMEMBER(ps->ps_sigcatch, sig) &&
2651
		    !SIGISMEMBER(td->td_sigmask, sig)))
2650
			tdsigwakeup(td, sig, SIG_CATCH,
2652
			tdsigwakeup(td, sig, SIG_CATCH,
2651
			    (SIGISMEMBER(ps->ps_sigintr, sig) ? EINTR :
2653
			    (SIGISMEMBER(ps->ps_sigintr, sig) ? EINTR :
2652
			     ERESTART));
2654
			     ERESTART));

Return to bug 219228