Remove cleverness for SIGTERM and SIGHUP.
authorChris Hanson <org/chris-hanson/cph>
Sat, 16 Mar 2019 05:15:58 +0000 (22:15 -0700)
committerChris Hanson <org/chris-hanson/cph>
Sat, 16 Mar 2019 05:44:58 +0000 (22:44 -0700)
SIGTERM shouldn't be caught; instead just leave the default behavior.  SIGHUP is
sent by Emacs when the *scheme* buffer is killed; it must kill the process or
we're left with a detached process.

src/microcode/uxsig.c

index 5a4547cb45c0ead6f17dcef3797d8f12e316614e..b7790218c6a8b69179c67679ea8d6593f9426497 100644 (file)
@@ -349,7 +349,7 @@ initialize_signal_descriptors (void)
   defsignal (SIGSYS, "SIGSYS",         dfl_terminate,  CORE_DUMP);
   defsignal (SIGPIPE, "SIGPIPE",       dfl_terminate,  0);
   defsignal (SIGALRM, "SIGALRM",       dfl_terminate,  ASYNC);
-  defsignal (SIGTERM, "SIGTERM",       dfl_terminate,  ASYNC);
+  defsignal (SIGTERM, "SIGTERM",       dfl_terminate,  (ASYNC | NOCATCH));
   defsignal (SIGUSR1, "SIGUSR1",       dfl_terminate,  ASYNC);
   defsignal (SIGUSR2, "SIGUSR2",       dfl_terminate,  ASYNC);
   defsignal (SIGABRT, "SIGABRT",       dfl_terminate,  (ASYNC | CORE_DUMP));
@@ -548,10 +548,7 @@ DEFUN_STD_HANDLER (sighnd_save_then_terminate,
 
 static
 DEFUN_STD_HANDLER (sighnd_terminate,
-  (termination_signal
-   ((! (option_emacs_subprocess && (signo == SIGHUP)))
-    ? (find_signal_name (signo))
-    : 0)))
+  (termination_signal (find_signal_name (signo))))
 \f
 #ifdef HAVE_SIGFPE
 extern void clear_float_exceptions (void);
@@ -681,8 +678,6 @@ UX_initialize_signals (void)
 #endif
   bind_handler (SIGALRM,       sighnd_timer);
   bind_handler (SIGVTALRM,     sighnd_timer);
-  bind_handler (SIGTERM,       sighnd_control_g);
-  bind_handler (SIGHUP,                sighnd_control_g);
   bind_handler (SIGUSR1,       sighnd_save_then_terminate);
 #ifdef HAVE_NICE
   bind_handler (SIGUSR2,       sighnd_renice);
@@ -696,8 +691,6 @@ UX_initialize_signals (void)
     {
       if (getenv ("USE_SCHEMATIK_STYLE_INTERRUPTS"))
         bind_handler (SIGHUP,   sighnd_control_b);
-      else if (!option_emacs_subprocess)
-       bind_handler (SIGHUP,   sighnd_save_then_terminate);
       if (getenv ("USE_SCHEMATIK_STYLE_INTERRUPTS"))
         bind_handler (SIGQUIT,  sighnd_control_u);
       else