< prev index next >

src/solaris/classes/sun/nio/fs/LinuxWatchService.java

Print this page
rev 13048 : 8203369: Check for both EAGAIN and EWOULDBLOCK error codes
Reviewed-by: alanb

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.  Oracle designates this

@@ -315,11 +315,11 @@
 
                     // read from inotify
                     try {
                         bytesRead = read(ifd, address, BUFFER_SIZE);
                     } catch (UnixException x) {
-                        if (x.errno() != EAGAIN)
+                        if (x.errno() != EAGAIN && x.errno() != EWOULDBLOCK)
                             throw x;
                         bytesRead = 0;
                     }
 
                     // iterate over buffer to decode events

@@ -363,11 +363,11 @@
                             read(socketpair[0], address, BUFFER_SIZE);
                             boolean shutdown = processRequests();
                             if (shutdown)
                                 break;
                         } catch (UnixException x) {
-                            if (x.errno() != UnixConstants.EAGAIN)
+                            if (x.errno() != EAGAIN && x.errno() != EWOULDBLOCK)
                                 throw x;
                         }
                     }
                 }
             } catch (UnixException x) {
< prev index next >