diff options
Diffstat (limited to 'src/trap.c')
-rw-r--r-- | src/trap.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/trap.c b/src/trap.c index ba32da6..7bd60ab 100644 --- a/src/trap.c +++ b/src/trap.c @@ -78,6 +78,8 @@ char sigmode[NSIG - 1]; static char gotsig[NSIG - 1]; /* last pending signal */ volatile sig_atomic_t pendingsigs; +/* received SIGCHLD */ +int gotsigchld; extern char *signal_names[]; @@ -284,6 +286,12 @@ ignoresig(int signo) void onsig(int signo) { + if (signo == SIGCHLD) { + gotsigchld = 1; + if (!trap[SIGCHLD]) + return; + } + gotsig[signo - 1] = 1; pendingsigs = signo; |