diff options
Diffstat (limited to 'Src/signals.c')
-rw-r--r-- | Src/signals.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/Src/signals.c b/Src/signals.c index dbecdf20c..8939d1ba1 100644 --- a/Src/signals.c +++ b/Src/signals.c @@ -49,7 +49,7 @@ mod_export int nsigtrapped; /* Variables used by signal queueing */ /**/ -mod_export int queueing_enabled, queue_front, queue_rear; +mod_export int queueing_enabled, queue_front, queue_rear, queue_not_sigchld; /**/ mod_export int signal_queue[MAX_QUEUE_SIZE]; /**/ @@ -425,7 +425,8 @@ zhandler(int sig) } #endif - if (queueing_enabled) { /* Are we queueing signals now? */ + /* Are we queueing signals now? */ + if (queueing_enabled && (sig != SIGCHLD || !queue_not_sigchld)) { int temp_rear = ++queue_rear % MAX_QUEUE_SIZE; DPUTS(temp_rear == queue_front, "BUG: signal queue full"); |