]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix race where emacs aborts when sent SIGTERM.
authorPaul Eggert <eggert@cs.ucla.edu>
Tue, 8 Oct 2013 05:13:21 +0000 (22:13 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Tue, 8 Oct 2013 05:13:21 +0000 (22:13 -0700)
* keyboard.c (unblock_input_to): Don't process pending signals
if a fatal error is in progress.

Fixes: debbugs:15534
src/ChangeLog
src/keyboard.c

index 755e710c07986f953e8ac791c8c33415c607bf1b..41771c92e93b55f7cf4620ac932817236dcd67ec 100644 (file)
@@ -1,5 +1,9 @@
 2013-10-08  Paul Eggert  <eggert@cs.ucla.edu>
 
+       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.
index 05efe7c131291a0fcb2c1592e1c4437e3771d331..4bfe47f3332a0663b7d6db27bd1c042bec93d72e 100644 (file)
@@ -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)