about summary refs log tree commit homepage
tag namev2.1.0 (932558168968312a05fdcd85b66b2064509fe52d)
tag date2010-06-06 20:37:43 +0000
tagged byEric Wong <normalperson@yhbt.net>
tagged objectcommit 52ec5be1ba...
downloadruby_io_splice-2.1.0.tar.gz
Ruby io_splice 2.1.0 - IO::Splice.copy_stream fixes
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/