6213702: (so) non-blocking sockets with TCP urgent disabled get still selected for read ops (win)
Alan Bateman
Alan.Bateman at oracle.com
Fri Jun 25 10:27:12 PDT 2010
The Windows Selector uses select and wakes up if there is OOB data
available for reading on one of the sockets. When the OOBINLINE option
is disabled (the default and usual case) then it can be lead to Selector
spin or read returning 0 when there isn't any (normal) data to read. To
address this, we need to read and discard the OOB data so that it
doesn't cause the channel to be selected (and allow subsequent selects
to block). The webrev with the changes is here:
http://cr.openjdk.java.net/~alanb/6213702/webrev/
Thanks,
Alan.
More information about the nio-dev
mailing list