src/java.base/unix/native/libnio/ch/IOUtil.c
changeset 50275 69204b98dc3d
parent 49430 e376090dc07e
child 54154 1caf2daef7cf
--- 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;