Detecting remote NIO sockets closed
Stanley Brown
stanley.brown@zimmer.com
Fri Sep 17 21:15:00 GMT 2004
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);
More information about the Java
mailing list