aboutsummaryrefslogtreecommitdiffstats
path: root/src/sysdep.c
diff options
context:
space:
mode:
authorAndreas Schwab2008-10-06 21:27:44 +0000
committerAndreas Schwab2008-10-06 21:27:44 +0000
commitef874e3d242f68c86f8a6bf0028a8669efdc4ff4 (patch)
treec93567528fd2eb5827e648b710962ef50091f823 /src/sysdep.c
parentc1e4ceb7d760e70b99d5607f43694ea2d8896681 (diff)
downloademacs-ef874e3d242f68c86f8a6bf0028a8669efdc4ff4.tar.gz
emacs-ef874e3d242f68c86f8a6bf0028a8669efdc4ff4.zip
(sys_signal): Always set SA_RESTART when
noninteractively.
Diffstat (limited to 'src/sysdep.c')
-rw-r--r--src/sysdep.c10
1 files changed, 6 insertions, 4 deletions
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)
2124 struct sigaction new_action, old_action; 2124 struct sigaction new_action, old_action;
2125 sigemptyset (&new_action.sa_mask); 2125 sigemptyset (&new_action.sa_mask);
2126 new_action.sa_handler = action; 2126 new_action.sa_handler = action;
2127#if defined (SA_RESTART) && ! defined (BROKEN_SA_RESTART) && !defined(SYNC_INPUT) 2127 new_action.sa_flags = 0;
2128#if defined (SA_RESTART)
2128 /* Emacs mostly works better with restartable system services. If this 2129 /* Emacs mostly works better with restartable system services. If this
2129 flag exists, we probably want to turn it on here. 2130 flag exists, we probably want to turn it on here.
2130 However, on some systems this resets the timeout of `select' 2131 However, on some systems this resets the timeout of `select'
@@ -2134,9 +2135,10 @@ sys_signal (int signal_number, signal_handler_t action)
2134 When SYNC_INPUT is set, we don't want SA_RESTART because we need to poll 2135 When SYNC_INPUT is set, we don't want SA_RESTART because we need to poll
2135 for pending input so we need long-running syscalls to be interrupted 2136 for pending input so we need long-running syscalls to be interrupted
2136 after a signal that sets the interrupt_input_pending flag. */ 2137 after a signal that sets the interrupt_input_pending flag. */
2137 new_action.sa_flags = SA_RESTART; 2138# if defined (BROKEN_SA_RESTART) || defined(SYNC_INPUT)
2138#else 2139 if (noninteractive)
2139 new_action.sa_flags = 0; 2140# endif
2141 new_action.sa_flags = SA_RESTART;
2140#endif 2142#endif
2141 sigaction (signal_number, &new_action, &old_action); 2143 sigaction (signal_number, &new_action, &old_action);
2142 return (old_action.sa_handler); 2144 return (old_action.sa_handler);