+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
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'
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);