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.