From: Paul Eggert Date: Tue, 8 Oct 2013 05:13:21 +0000 (-0700) Subject: Fix race where emacs aborts when sent SIGTERM. X-Git-Tag: emacs-24.3.90~173^2^2~42^2~45^2~387^2~1337 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=18978362d27ab487cafbcba58fb74a2d24eaedc4;p=emacs.git 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 --- diff --git a/src/ChangeLog b/src/ChangeLog index 755e710c079..41771c92e93 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,9 @@ 2013-10-08 Paul Eggert + Fix race where emacs aborts when sent SIGTERM (Bug#15534). + * keyboard.c (unblock_input_to): Don't process pending signals + if a fatal error is in progress. + * lisp.h (bits_word, BITS_WORD_MAX): New type and macro. All uses of 'size_t' and 'SIZE_MAX' changed to use them, when they're talking about words in Lisp bool vectors. 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)