- io_splice - zero-copy pipe I/O for Linux and Ruby
- [email protected]
- git://git.bogomips.org/ruby_io_splice.git
Changes:
This fixes the issue with our copy_stream where non-pipe
descriptors with the O_NONBLOCK flag set were not handled
correctly. Like IO.copy_stream in Ruby 1.9, our
IO::Splice.copy_stream will always block until IO is available
(or raise if there are errors).
IO::Splice.copy_stream now closes all file descriptors that were
opened within the method, reducing pressure on the garbage
collector.
There are also new singleton convenience methods:
- IO::Splice.full - blocks and splices the full amount
- IO::Splice.partial - blocks until something is spliceable
They are used internally to implement IO::Splice.copy_stream,
but may also be useful to end users.
Rcov shows 100% test coverage \o/