Clean-up left-overs after 2012-09-23T08:44:20Z!eggert@cs.ucla.edu wrt signal handling.

src/.gdbinit: Set breakpoint on terminate_due_to_signal, not on
 fatal_error_backtrace.
 src/w32proc.c (sys_kill): Undo last change: don't do anything when
 invoked to deliver SIGABRT to our own process.  This is now
 handled by emacs_raise.

 nt/inc/ms-w32.h (emacs_raise): Redefine to invoke emacs_abort.

Fixes: debbugs:12471
This commit is contained in:
Eli Zaretskii 2012-09-23 19:34:30 +02:00
parent 2c3ee0ad12
commit 5101529e98
5 changed files with 16 additions and 6 deletions

View file

@ -1,3 +1,7 @@
2012-09-23 Eli Zaretskii <eliz@gnu.org>
* inc/ms-w32.h (emacs_raise): Redefine to invoke emacs_abort.
2012-09-23 Paul Eggert <eggert@cs.ucla.edu>
Simplify and avoid signal-handling races (Bug#12471).

View file

@ -204,7 +204,7 @@ struct sigaction {
#define signal sys_signal
/* Internal signals. */
#define emacs_raise(sig) kill (getpid (), sig)
#define emacs_raise(sig) emacs_abort()
/* termcap.c calls that are emulated. */
#define tputs sys_tputs

View file

@ -1214,8 +1214,8 @@ show environment DISPLAY
show environment TERM
# When debugging, it is handy to be able to "return" from
# fatal_error_backtrace when an assertion failure is non-fatal.
break fatal_error_backtrace
# terminate_due_to_signal when an assertion failure is non-fatal.
break terminate_due_to_signal
# x_error_quitter is defined only on X. But window-system is set up
# only at run time, during Emacs startup, so we need to defer setting

View file

@ -1,3 +1,12 @@
2012-09-23 Eli Zaretskii <eliz@gnu.org>
* .gdbinit: Set breakpoint on terminate_due_to_signal, not on
fatal_error_backtrace.
* w32proc.c (sys_kill): Undo last change: don't do anything when
invoked to deliver SIGABRT to our own process. This is now
handled by emacs_raise.
2012-09-23 Juanma Barranquero <lekktu@gmail.com>
* w32term.c (w32_read_socket): Remove leftover reference to

View file

@ -1428,9 +1428,6 @@ sys_kill (int pid, int sig)
int need_to_free = 0;
int rc = 0;
if (pid == getpid () && sig == SIGABRT)
emacs_abort ();
/* Only handle signals that will result in the process dying */
if (sig != SIGINT && sig != SIGKILL && sig != SIGQUIT && sig != SIGHUP)
{