From 25ab68afb8ba0d34dd868208e4fe19ea4a2f8cc7 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Sat, 15 Jan 1994 13:04:09 +0000 Subject: [PATCH] (request_sigio, unrequest_sigio): Add new versions of these routines for the CX/UX operating system. (sys_signal) [SA_RESTART]: Set this flag. --- src/sysdep.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/sysdep.c b/src/sysdep.c index 23376cb9bce..68d3d5463db 100644 --- a/src/sysdep.c +++ b/src/sysdep.c @@ -791,6 +791,32 @@ unrequest_sigio () #else /* not FASYNC, not STRIDE */ +#ifdef _CX_UX + +#include + +request_sigio () +{ + int on = 1; + sigset_t st; + + sigemptyset(&st); + sigaddset(&st, SIGIO); + ioctl (input_fd, FIOASYNC, &on); + interrupts_deferred = 0; + sigprocmask(SIG_UNBLOCK, &st, (sigset_t *)0); +} + +unrequest_sigio () +{ + int off = 0; + + ioctl (input_fd, FIOASYNC, &off); + interrupts_deferred = 1; +} + +#else /* ! _CX_UX */ + request_sigio () { croak ("request_sigio"); @@ -801,6 +827,7 @@ unrequest_sigio () croak ("unrequest_sigio"); } +#endif /* _CX_UX */ #endif /* STRIDE */ #endif /* FASYNC */ #endif /* F_SETFL */ @@ -2337,7 +2364,14 @@ sys_signal (int signal_number, signal_handler_t action) #else sigemptyset (&new_action.sa_mask); new_action.sa_handler = action; +#ifdef SA_RESTART + /* Emacs mostly works better with restartable system services. If this + * flag exists, we probably want to turn it on here. + */ + new_action.sa_flags = SA_RESTART; +#else new_action.sa_flags = 0; +#endif sigaction (signal_number, &new_action, &old_action); return (old_action.sa_handler); #endif /* DGUX */ -- 2.39.5