Date: Wed, 18 Jul 2001 20:47:25 -0400 (EDT)
From: ###@###.###
To: ###@###.###, ###@###.###
Subject: writev limitations
Also, I recently noticed that at least on Solaris, because writev()
only supports up to 16 (IOV_MAX in /usr/include/limit.h) buffers in the
iov array, and the NIO socket implementation doesn't attempt to
insulate Java code from that limitation, an attempt to invoke
GatheringByteChannel.write with a ByteBuffer[] of length greater than
16 will cause an IOException with a detail of "Invalid argument"
(strerror(EINVAL)). It would seem desirable for the NIO implementation
to take care of making such invocations work-- 16 doesn't seem like an
unreasonably high number of buffers to write at once. (I assume that
the same issues applies to readv() and ScatteringByteChannel.read too.)
From: ###@###.###
To: ###@###.###, ###@###.###
Subject: writev limitations
Also, I recently noticed that at least on Solaris, because writev()
only supports up to 16 (IOV_MAX in /usr/include/limit.h) buffers in the
iov array, and the NIO socket implementation doesn't attempt to
insulate Java code from that limitation, an attempt to invoke
GatheringByteChannel.write with a ByteBuffer[] of length greater than
16 will cause an IOException with a detail of "Invalid argument"
(strerror(EINVAL)). It would seem desirable for the NIO implementation
to take care of making such invocations work-- 16 doesn't seem like an
unreasonably high number of buffers to write at once. (I assume that
the same issues applies to readv() and ScatteringByteChannel.read too.)