From a9f2765b4febea0a02b286f54abe5c2f1cfc2bb6 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Thu, 13 Oct 2016 11:25:27 -0600 Subject: [PATCH] another errno in a signal handler --- racket/src/racket/src/port.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/racket/src/racket/src/port.c b/racket/src/racket/src/port.c index 26995ba6e4..4cbe365c25 100644 --- a/racket/src/racket/src/port.c +++ b/racket/src/racket/src/port.c @@ -10917,12 +10917,14 @@ void scheme_signal_received_at(void *h) { #if defined(FILES_HAVE_FDS) int put_ext_event_fd = *(int *)h; + int saved_errno = errno; if (put_ext_event_fd) { int v; do { v = write(put_ext_event_fd, "!", 1); } while ((v == -1) && (errno == EINTR)); } + errno = saved_errno; #endif #if defined(WINDOWS_PROCESSES) || defined(WINDOWS_FILE_HANDLES) ReleaseSemaphore(*(OS_SEMAPHORE_TYPE *)h, 1, NULL);