emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r114573: Fix race where emacs aborts when sent SIGTE


From: Paul Eggert
Subject: [Emacs-diffs] trunk r114573: Fix race where emacs aborts when sent SIGTERM.
Date: Tue, 08 Oct 2013 05:13:25 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 114573
revision-id: address@hidden
parent: address@hidden
fixes bug: http://debbugs.gnu.org/15534
committer: Paul Eggert <address@hidden>
branch nick: trunk
timestamp: Mon 2013-10-07 22:13:21 -0700
message:
  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.
modified:
  src/ChangeLog                  changelog-20091113204419-o5vbwnq5f7feedwu-1438
  src/keyboard.c                 keyboard.c-20091113204419-o5vbwnq5f7feedwu-449
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2013-10-08 04:25:33 +0000
+++ b/src/ChangeLog     2013-10-08 05:13:21 +0000
@@ -1,5 +1,9 @@
 2013-10-08  Paul Eggert  <address@hidden>
 
+       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.

=== modified file 'src/keyboard.c'
--- a/src/keyboard.c    2013-09-24 06:43:20 +0000
+++ b/src/keyboard.c    2013-10-08 05:13:21 +0000
@@ -7090,7 +7090,8 @@
 }
 
 /* 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 @@
   interrupt_input_blocked = level;
   if (level == 0)
     {
-      if (pending_signals)
+      if (pending_signals && !fatal_error_in_progress)
        process_pending_signals ();
     }
   else if (level < 0)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]