From 8a3c39237548f487b81f400dd90ed2221f1c99bf Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Thu, 29 Aug 2002 19:23:33 +0000 Subject: [PATCH] [!VMS]: Include sys/file.h. (sys_signal): Test BROKEN_SA_RESTART. --- src/sysdep.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/sysdep.c b/src/sysdep.c index 10014c52d57..f8ddd5d6c0e 100644 --- a/src/sysdep.c +++ b/src/sysdep.c @@ -143,6 +143,10 @@ extern int errno; #define MAXIOSIZE (32 * PAGESIZE) /* Don't I/O more than 32 blocks at a time */ #endif /* VMS */ +#ifndef VMS +#include +#endif /* not VMS */ + #ifndef BSD4_1 #ifdef BSD_SYSTEM /* avoid writing defined (BSD_SYSTEM) || defined (USG) because the vms compiler doesn't grok `defined' */ @@ -2803,10 +2807,12 @@ 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; -#ifdef SA_RESTART +#if defined (SA_RESTART) && ! defined (BROKEN_SA_RESTART) /* Emacs mostly works better with restartable system services. If this - * flag exists, we probably want to turn it on here. - */ + flag exists, we probably want to turn it on here. + However, on some systems this resets the timeout of `select' + which means that `select' never finishes if it keeps getting signals. + BROKEN_SA_RESTART is defined on those systems. */ new_action.sa_flags = SA_RESTART; #else new_action.sa_flags = 0; -- 2.39.5