1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-01 18:00:40 -08:00

(sys_signal): Always set SA_RESTART when

noninteractively.
This commit is contained in:
Andreas Schwab 2008-10-06 21:27:44 +00:00
parent c1e4ceb7d7
commit ef874e3d24
2 changed files with 11 additions and 4 deletions

View 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

View 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);