diff options
author | Jim Blandy <jimb@red-bean.com> | 1999-06-12 17:26:22 +0000 |
---|---|---|
committer | Jim Blandy <jimb@red-bean.com> | 1999-06-12 17:26:22 +0000 |
commit | 840ae05d912b3f9fdea264ab7ca348cff8bde420 (patch) | |
tree | 9be71a086ed3b4acd8a5c549abaac2afb5acf7ed /libguile/scmsigs.c | |
parent | 027ffa31f5e32e29fef1a498a73056710780ca21 (diff) | |
download | guile-840ae05d912b3f9fdea264ab7ca348cff8bde420.tar.gz |
* fports.c, fports.h, gc.c, gdbint.c, ioext.c, ports.c, ports.h,
scmsigs.c, strports.c, vports.c: Install the sources which
actually correspond to the changes described below. I got the
ChangeLog entries and the patch from two different places...
Diffstat (limited to 'libguile/scmsigs.c')
-rw-r--r-- | libguile/scmsigs.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/libguile/scmsigs.c b/libguile/scmsigs.c index f3970eb20..072613492 100644 --- a/libguile/scmsigs.c +++ b/libguile/scmsigs.c @@ -434,9 +434,26 @@ scm_init_scmsigs () got_signal[i] = 0; #ifdef HAVE_SIGACTION orig_handlers[i].sa_handler = SIG_ERR; + #else orig_handlers[i] = SIG_ERR; #endif + +#ifdef HAVE_RESTARTS + /* ensure that system calls will be restarted for all signals. */ + /* sigintterupt would be simpler, but it seems better to avoid + dependency on another system call. */ + { + struct sigaction action; + + sigaction (i, NULL, &action); + if (!(action.sa_flags & SA_RESTART)) + { + action.sa_flags &= SA_RESTART; + sigaction (i, &action, NULL); + } + } +#endif } scm_sysintern ("NSIG", scm_long2num (NSIG)); |