mirror of
https://git.FreeBSD.org/src.git
synced 2024-10-19 02:29:40 +00:00
sh: Use sigaction instead of signal/siginterrupt combination.
This commit is contained in:
parent
41c8c6e876
commit
3f228d7484
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=199205
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user