From: Andreas Schwab Date: Mon, 6 Oct 2008 21:27:44 +0000 (+0000) Subject: (sys_signal): Always set SA_RESTART when X-Git-Tag: emacs-pretest-23.0.90~2620 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=ef874e3d242f68c86f8a6bf0028a8669efdc4ff4;p=emacs.git (sys_signal): Always set SA_RESTART when noninteractively. --- diff --git a/src/ChangeLog b/src/ChangeLog index 75a336b7727..e56ddb55db6 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2008-10-06 Andreas Schwab + + * sysdep.c (sys_signal): Always set SA_RESTART when + noninteractively. + 2008-10-06 Chong Yidong * emacs.c (Vbefore_init_time, Vafter_init_time): Moved from diff --git a/src/sysdep.c b/src/sysdep.c index b1d072e729f..96ab3996953 100644 --- a/src/sysdep.c +++ b/src/sysdep.c @@ -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);