From c79ebc93a215f5178f8b79d27018c6fbbdcde958 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josef=20S=C3=B6ntgen?= Date: Mon, 14 Oct 2019 17:15:53 +0200 Subject: [PATCH] libc_noux: try read again on EAGAIN/EINTR Issue #3541. --- repos/ports/src/lib/libc_noux/plugin.cc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/repos/ports/src/lib/libc_noux/plugin.cc b/repos/ports/src/lib/libc_noux/plugin.cc index 5ae897267..0a9cb6fa0 100644 --- a/repos/ports/src/lib/libc_noux/plugin.cc +++ b/repos/ports/src/lib/libc_noux/plugin.cc @@ -1366,6 +1366,14 @@ namespace { errno = 0; break; } + + /* try again */ + bool const retry = (errno == EINTR + || errno == EAGAIN + || errno == EWOULDBLOCK); + if (errno && retry) + continue; + return -1; }