about summary refs log tree commit diff
path: root/Src/signals.c
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2004-04-19 16:02:17 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2004-04-19 16:02:17 +0000
commitb5ceb73026791281532ea9638cadac491b27959b (patch)
treecf3a758d87070a5a6b7d8e003e1f015c41b7a9d9 /Src/signals.c
parent55940daefb5b75bb929bda03612fafab6beedaff (diff)
downloadzsh-b5ceb73026791281532ea9638cadac491b27959b.tar.gz
zsh-b5ceb73026791281532ea9638cadac491b27959b.tar.xz
zsh-b5ceb73026791281532ea9638cadac491b27959b.zip
zsh-users/7365: new TRAPS_ASYNC option
Diffstat (limited to 'Src/signals.c')
-rw-r--r--Src/signals.c5
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");