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:
parent
c1e4ceb7d7
commit
ef874e3d24
2 changed files with 11 additions and 4 deletions
|
|
@ -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
|
||||
|
|
|
|||
10
src/sysdep.c
10
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);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue