io_splice 3.0.0 - kinder, gentler Linux zero-copyv3.0.0
commit73b61c10c0085ee4a26a321375938bce16fb8a6d
authorEric Wong <normalperson@yhbt.net>
Tue, 1 Mar 2011 09:29:57 +0000 (1 09:29 +0000)
committerEric Wong <normalperson@yhbt.net>
Tue, 1 Mar 2011 09:29:57 +0000 (1 09:29 +0000)
treec016e0d4e7df9038d391e3b42f7242138c5ac1b3
parent9230fba2a4231965687d2e590f8d6ad01a2fa3a8
io_splice 3.0.0 - kinder, gentler Linux zero-copy

This release adds the IO.trysplice and IO.trytee interfaces
to avoid expensive EAGAIN exceptions for non-blocking I/O.

There is no IO.tryvmsplice method as we still haven't figured
out a good use for IO.vmsplice in Ruby, and non-blocking I/O
with iovecs is just painful!  If you want more zero-copy fun
without needing mmap(2), check out the "sendfile" RubyGem and
IO.copy_stream (1.9).  As of Linux 2.6.33+, sendfile(2) can copy
mmap-able files to +any+ descriptor, not just sockets.

Please email us at ruby.io.splice@librelist.com if you can think
of a good use for IO.vmsplice or IO.trysplice in Ruby.
GIT-VERSION-GEN