A file descriptor is removed from an epoll descriptor when it is closed;
trying to remove it later harmlessly returns ENOENT. This handles that case.
2006-09-20 Casey Marshall <[EMAIL PROTECTED]>
* native/jni/java-nio/gnu_java_nio_EpollSelectorImpl.c
(Java_gnu_java_nio_EpollSelectorImpl_epoll_1delete): ignore
ENOENT.
Committed.
### Eclipse Workspace Patch 1.0
#P classpath
Index: native/jni/java-nio/gnu_java_nio_EpollSelectorImpl.c
===================================================================
RCS file:
/cvsroot/classpath/classpath/native/jni/java-nio/gnu_java_nio_EpollSelectorImpl.c,v
retrieving revision 1.1
diff -u -r1.1 gnu_java_nio_EpollSelectorImpl.c
--- native/jni/java-nio/gnu_java_nio_EpollSelectorImpl.c 20 Sep 2006
21:39:41 -0000 1.1
+++ native/jni/java-nio/gnu_java_nio_EpollSelectorImpl.c 20 Sep 2006
22:21:33 -0000
@@ -246,6 +246,8 @@
if (ENOSYS == errno)
JCL_ThrowException (env, "java/lang/InternalError",
strerror (errno));
+ else if (ENOENT == errno)
+ return; /* fd is closed; it's already removed. */
else
JCL_ThrowException (env, IO_EXCEPTION, strerror (errno));
}