The splice family of Linux system calls can transfer data between file
descriptors without the need to copy data into userspace.  Instead of a
userspace buffer, they rely on an ordinary Unix pipe as a kernel-level
buffer.

* http://bogomips.org/ruby_io_splice/
* ruby.io.splice / librelist.com
* git://bogomips.org/ruby_io_splice.git

Changes:

IO::Splice.copy_stream no longer modifies the actual file offset
of the given source file (if it's a regular file).  This follows
IO.copy_stream and IO#sendfile semantics, allowing multiple
threads/processes to simultaneously stream a single regular file
descriptor to multiple sockets/pipes.

-- 
Eric Wong