diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2013-10-07 22:13:21 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2013-10-07 22:13:21 -0700 |
commit | 18978362d27ab487cafbcba58fb74a2d24eaedc4 (patch) | |
tree | d645cad727cde4e7190bef0abdb7ec8d88543a17 /src/keyboard.c | |
parent | 3e45e7023ef4e43c4de36e517e47b0429e5d9929 (diff) | |
download | emacs-18978362d27ab487cafbcba58fb74a2d24eaedc4.tar.gz |
Fix race where emacs aborts when sent SIGTERM.
* keyboard.c (unblock_input_to): Don't process pending signals
if a fatal error is in progress.
Fixes: debbugs:15534
Diffstat (limited to 'src/keyboard.c')
-rw-r--r-- | src/keyboard.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/keyboard.c b/src/keyboard.c index 05efe7c1312..4bfe47f3332 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -7090,7 +7090,8 @@ process_pending_signals (void) } /* Undo any number of BLOCK_INPUT calls down to level LEVEL, - and also (if the level is now 0) reinvoke any pending signal. */ + and reinvoke any pending signal if the level is now 0 and + a fatal error is not already in progress. */ void unblock_input_to (int level) @@ -7098,7 +7099,7 @@ unblock_input_to (int level) interrupt_input_blocked = level; if (level == 0) { - if (pending_signals) + if (pending_signals && !fatal_error_in_progress) process_pending_signals (); } else if (level < 0) |