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

(-)sig.c (-2 / +11 lines)
Lines 94-102 Link Here
94
		if (signo == sighdl[i])
94
		if (signo == sighdl[i])
95
			break;
95
			break;
96
96
97
	(void) signal(signo, sel->el_signal[i]);
97
	if (sel->el_signal[i] != SIG_IGN && signo != SIGCONT) {
98
		/* Deliver the signal to my original handler */
99
		(void) signal(signo, sel->el_signal[i]);
100
		(void) kill(getpid(), signo);
101
		(void) sigfillset(&nset);
102
		(void) sigdelset(&nset, signo);
103
		(void) sigdelset(&nset, SIGCONT);
104
		/* delever and maybe stop here */
105
		(void) sigsuspend(&nset);
106
		(void) signal(signo, sig_handler);
107
	}
98
	(void) sigprocmask(SIG_SETMASK, &oset, NULL);
108
	(void) sigprocmask(SIG_SETMASK, &oset, NULL);
99
	(void) kill(0, signo);
100
}
109
}

Return to bug 159226