sh: Use sigaction instead of signal/siginterrupt combination.

This commit is contained in:
Jilles Tjoelker 2009-11-11 23:13:24 +00:00
parent 41c8c6e876
commit 3f228d7484
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=199205

View File

@ -244,7 +244,8 @@ void
setsignal(int signo)
{
int action;
sig_t sig, sigact = SIG_DFL;
sig_t sigact = SIG_DFL;
struct sigaction sa;
char *t;
if ((t = trap[signo]) == NULL)
@ -320,9 +321,10 @@ setsignal(int signo)
case S_IGN: sigact = SIG_IGN; break;
}
*t = action;
sig = signal(signo, sigact);
if (sig != SIG_ERR && action == S_CATCH)
siginterrupt(signo, 1);
sa.sa_handler = sigact;
sa.sa_flags = 0;
sigemptyset(&sa.sa_mask);
sigaction(signo, &sa, NULL);
}