LATEST in io_splice-2.2.0.18.g3025 vs LATEST in io_splice-3.0.0

- old
+ new

@@ -1,14 +1,15 @@ -=== Ruby io_splice 2.2.0 - updates for Linux 2.6.35 / 2010-08-02 08:05 UTC +=== io_splice 3.0.0 - kinder, gentler Linux zero-copy / 2011-03-01 09:38 UTC - This release adds IO#pipe_size and IO#pipe_size= accessors for - resizing the kernel pipe buffer under Linux 2.6.35+. This - functionality may be used to either reduce memory footprint or - make large copies with fewer method dispatches and system calls. + This release adds the IO.trysplice and IO.trytee interfaces + to avoid expensive EAGAIN exceptions for non-blocking I/O. - These methods are only available when run under Linux 2.6.35 or - later (but always built, so there's no need to recompile this - library after upgrading your kernel). + 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. - http://bogomips.org/ruby_io_splice/doc/IO.html#method-i-pipe_size - http://bogomips.org/ruby_io_splice/doc/IO.html#method-i-pipe_size%3D + 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.