diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/sysdep.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/sysdep.c b/src/sysdep.c index 383be4b9df6..f2ac20ae4a5 100644 --- a/src/sysdep.c +++ b/src/sysdep.c | |||
| @@ -2816,10 +2816,12 @@ sys_signal (int signal_number, signal_handler_t action) | |||
| 2816 | struct sigaction new_action, old_action; | 2816 | struct sigaction new_action, old_action; |
| 2817 | sigemptyset (&new_action.sa_mask); | 2817 | sigemptyset (&new_action.sa_mask); |
| 2818 | new_action.sa_handler = action; | 2818 | new_action.sa_handler = action; |
| 2819 | #ifdef SA_RESTART | 2819 | #if defined (SA_RESTART) && ! defined (BROKEN_SA_RESTART) |
| 2820 | /* Emacs mostly works better with restartable system services. If this | 2820 | /* Emacs mostly works better with restartable system services. If this |
| 2821 | * flag exists, we probably want to turn it on here. | 2821 | flag exists, we probably want to turn it on here. |
| 2822 | */ | 2822 | However, on some systems this resets the timeout of `select' |
| 2823 | which means that `select' never finishes if it keeps getting signals. | ||
| 2824 | BROKEN_SA_RESTART is defined on those systems. */ | ||
| 2823 | new_action.sa_flags = SA_RESTART; | 2825 | new_action.sa_flags = SA_RESTART; |
| 2824 | #else | 2826 | #else |
| 2825 | new_action.sa_flags = 0; | 2827 | new_action.sa_flags = 0; |