7074436: (sc) SocketChannel can do short gathering writes when channel configured blocking (win)
Chris Hegarty
chris.hegarty at oracle.com
Tue Oct 22 05:26:44 PDT 2013
Looks good to me Alan, this will be a nice surprise for Windows users.
-Chris.
On 22/10/2013 10:06, Alan Bateman wrote:
>
> On Windows then SocketChannel.write has to split large writes into 128k
> chunks in order to support async close when the channel is configured
> blocking. This wasn't implemented completely for gathering writes: if
> the total number of bytes remaining in the buffers exceeds 128k then it
> just writes up to 128k and returns that as the number of bytes written.
> This is problematic for applications that don't expect a short write
> (meaning they don't use the idiom to write until the number of bytes
> remaining is 0 or they don't check the return value).
>
> I'd like to update the gathering write so that it works like the write,
> this means that if the total remaining is >128k then there will be
> multiple calls to WSASend to write the bytes.
> http://cr.openjdk.java.net/~alanb/7074436/webrev/
>
> Thanks,
> Alan.
More information about the nio-dev
mailing list