mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-16 08:10:43 -08:00
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
This commit is contained in:
parent
3e45e7023e
commit
18978362d2
2 changed files with 7 additions and 2 deletions
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue