--- a/src/java.base/unix/native/libnio/ch/IOUtil.c Fri May 25 11:59:01 2018 -0700
+++ b/src/java.base/unix/native/libnio/ch/IOUtil.c Fri May 25 12:44:34 2018 -0700
@@ -120,7 +120,7 @@
for (;;) {
int n = read(fd, buf, sizeof(buf));
tn += n;
- if ((n < 0) && (errno != EAGAIN))
+ if ((n < 0) && (errno != EAGAIN && errno != EWOULDBLOCK))
JNU_ThrowIOExceptionWithLastError(env, "Drain");
if (n == (int)sizeof(buf))
continue;
@@ -136,7 +136,7 @@
res = read(fd, buf, 1);
if (res < 0) {
- if (errno == EAGAIN) {
+ if (errno == EAGAIN || errno == EWOULDBLOCK) {
res = 0;
} else if (errno == EINTR) {
return IOS_INTERRUPTED;
@@ -187,7 +187,7 @@
return 0;
}
}
- else if (errno == EAGAIN)
+ else if (errno == EAGAIN || errno == EWOULDBLOCK)
return IOS_UNAVAILABLE;
else if (errno == EINTR)
return IOS_INTERRUPTED;
@@ -212,7 +212,7 @@
return 0;
}
}
- else if (errno == EAGAIN)
+ else if (errno == EAGAIN || errno == EWOULDBLOCK)
return IOS_UNAVAILABLE;
else if (errno == EINTR)
return IOS_INTERRUPTED;