]> git.eshelyaron.com Git - emacs.git/commitdiff
(sys_signal): Always set SA_RESTART when
authorAndreas Schwab <schwab@suse.de>
Mon, 6 Oct 2008 21:27:44 +0000 (21:27 +0000)
committerAndreas Schwab <schwab@suse.de>
Mon, 6 Oct 2008 21:27:44 +0000 (21:27 +0000)
noninteractively.

src/ChangeLog
src/sysdep.c

index 75a336b7727ac3f0588a02f61f7801c1bae43be5..e56ddb55db666c66830b1a91f233204f094ac563 100644 (file)
@@ -1,3 +1,8 @@
+2008-10-06  Andreas Schwab  <schwab@suse.de>
+
+       * sysdep.c (sys_signal): Always set SA_RESTART when
+       noninteractively.
+
 2008-10-06  Chong Yidong  <cyd@stupidchicken.com>
 
        * emacs.c (Vbefore_init_time, Vafter_init_time): Moved from
index b1d072e729f6cc001c9cd50b204fb376a5f0b30c..96ab3996953796038ecd6c4c0ec62c46f0e7197a 100644 (file)
@@ -2124,7 +2124,8 @@ sys_signal (int signal_number, signal_handler_t action)
   struct sigaction new_action, old_action;
   sigemptyset (&new_action.sa_mask);
   new_action.sa_handler = action;
-#if defined (SA_RESTART) && ! defined (BROKEN_SA_RESTART) && !defined(SYNC_INPUT)
+  new_action.sa_flags = 0;
+#if defined (SA_RESTART)
   /* Emacs mostly works better with restartable system services. If this
      flag exists, we probably want to turn it on here.
      However, on some systems this resets the timeout of `select'
@@ -2134,9 +2135,10 @@ sys_signal (int signal_number, signal_handler_t action)
      When SYNC_INPUT is set, we don't want SA_RESTART because we need to poll
      for pending input so we need long-running syscalls to be interrupted
      after a signal that sets the interrupt_input_pending flag.  */
-  new_action.sa_flags = SA_RESTART;
-#else
-  new_action.sa_flags = 0;
+# if defined (BROKEN_SA_RESTART) || defined(SYNC_INPUT)
+  if (noninteractive)
+# endif
+    new_action.sa_flags = SA_RESTART;
 #endif
   sigaction (signal_number, &new_action, &old_action);
   return (old_action.sa_handler);