This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
Detecting remote NIO sockets closed
- From: Stanley Brown <stanley dot brown at zimmer dot com>
- To: java at gcc dot gnu dot org
- Date: Fri, 17 Sep 2004 16:15:05 -0500
- Subject: Detecting remote NIO sockets closed
Found another NIO sockets issue. For some reason an OP_READ event is
never issued when a non-blocking socket has concluded. This is a
problem because, from my understanding, the only way to know you've
reached the end of one of these is by recieving an OP_READ and getting a
-1 back when attempting to read from the channel.
Example: http://javaalmanac.com/egs/java.nio/DetectClosed.html
I dug around a bit and I think that the problem resides in
natSelectorImplWin32.cc:
aArray[nCurIndex++].init(pReadFD[i], FD_ACCEPT | FD_READ);
Shouldnt we take interest in closing fd's?
aArray[nCurIndex++].init(pReadFD[i], FD_ACCEPT | FD_READ | FD_CLOSE);