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