diff options
author | Barton E. Schaefer <schaefer@zsh.org> | 2015-09-02 19:11:54 -0700 |
---|---|---|
committer | Barton E. Schaefer <schaefer@zsh.org> | 2015-09-02 19:11:54 -0700 |
commit | 9f5dffa1f33ec43c306bdf3c87cebba5fcc95b64 (patch) | |
tree | c46534e1fc5ddc2333a6a1792946f180f985019a /Src/signals.c | |
parent | cdbd1b258192fa27c17241877f460c5543827759 (diff) | |
download | zsh-9f5dffa1f33ec43c306bdf3c87cebba5fcc95b64.tar.gz zsh-9f5dffa1f33ec43c306bdf3c87cebba5fcc95b64.tar.xz zsh-9f5dffa1f33ec43c306bdf3c87cebba5fcc95b64.zip |
36393: process queued signals during dotrap()
Diffstat (limited to 'Src/signals.c')
-rw-r--r-- | Src/signals.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/Src/signals.c b/Src/signals.c index f45c1860c..aa0b5aaa7 100644 --- a/Src/signals.c +++ b/Src/signals.c @@ -1348,6 +1348,7 @@ void dotrap(int sig) { void *funcprog; + int q = queue_signal_level(); if (sigtrapped[sig] & ZSIG_FUNC) { HashNode hn = gettrapnode(sig, 0); @@ -1370,5 +1371,9 @@ dotrap(int sig) if ((sigtrapped[sig] & ZSIG_IGNORED) || !funcprog || errflag) return; + dont_queue_signals(); + dotrapargs(sig, sigtrapped+sig, funcprog); + + restore_queue_signals(q); } |