summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2015-12-06 01:44:38 +0000
committerIan Jackson <ijackson@chiark.greenend.org.uk>2015-12-06 01:44:38 +0000
commit32e76c7d514d05d5ac6ad9833035b9826fbc1c8f (patch)
tree57325b5963b40538e9e7069b818634ea0a821dfc
parentf4263fc2c4f6aa79455f6c8252606b17daf5aa7d (diff)
Save errno in signal handler
-rw-r--r--statemc.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/statemc.c b/statemc.c
index 04f0a1d..cb5139d 100644
--- a/statemc.c
+++ b/statemc.c
@@ -536,6 +536,7 @@ static void *sigarrived_event(oop_source *lp, int fd, oop_event e, void *u) {
}
static void sigarrived_handler(int signum) {
+ int esave = errno;
static char x;
switch (signum) {
case SIGTERM:
@@ -546,6 +547,7 @@ static void sigarrived_handler(int signum) {
abort();
}
write(signal_self_pipe[1],&x,1);
+ errno = esave;
}
void init_signals(void) {