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; }