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.
- io_splice - zero-copy pipe I/O for Linux and Ruby
- [email protected]
- git://bogomips.org/ruby_io_splice.git
- io_splice news
Changes:
We now limit maximum splice length to (1<<30) to avoid EINVAL
errors on 64-bit hosts.
vmsplice no longer raises Errno::EFAULT optimizations in newer
GCC (not that I’ve found a good use for vmsplice at all with
Ruby…)
There are several other small cleanups.
Eric W. (6):
copy_stream: small cleanup for pipe splicing
limit maximum splice length to 1 << 30
avoid uname() for pipe size modification checks
doc: s/librelist.com/librelist.org/
vmsplice: avoid referencing invalid stack address for strings
vmsplice: more consistent fileno retry handling