summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/syscalls.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/syscalls.cc')
-rw-r--r--winsup/cygwin/syscalls.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc
index 3359c352e..e9ee64d81 100644
--- a/winsup/cygwin/syscalls.cc
+++ b/winsup/cygwin/syscalls.cc
@@ -275,6 +275,7 @@ _read (int fd, void *ptr, size_t len)
int res;
fhandler_base *fh;
extern int sigcatchers;
+ int e = get_errno ();
while (1)
{
@@ -318,6 +319,7 @@ _read (int fd, void *ptr, size_t len)
out:
if (res >= 0 || get_errno () != EINTR || !thisframe.call_signal_handler ())
break;
+ set_errno (e);
}
syscall_printf ("%d = read (%d<%s>, %p, %d), bin %d, errno %d", res, fd, fh->get_name (),