summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libguile/scmsigs.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/libguile/scmsigs.c b/libguile/scmsigs.c
index 1583f4f3e..d1daf04b4 100644
--- a/libguile/scmsigs.c
+++ b/libguile/scmsigs.c
@@ -137,12 +137,14 @@ static int signal_pipe[2];
static SIGRETTYPE
take_signal (int signum)
{
+ int old_errno = errno;
char sigbyte = signum;
full_write (signal_pipe[1], &sigbyte, 1);
#ifndef HAVE_SIGACTION
signal (signum, take_signal);
#endif
+ errno = old_errno;
}
struct signal_pipe_data