Posted By: Eric Wong
Date: 2011-02-04 03:11
Summary: kgio 2.2.0 - kinder, gentler I/O for the Internets
Project: Rainbows!
kgio provides non-blocking I/O methods for Ruby without raising exceptions on EAGAIN and EINPROGRESS. It is intended for use with the Unicorn and Rainbows! Rack servers, but may be used by other applications.
* http://bogomips.org/kgio/ * kgio@librelist.org />* git://bogomips.org/kgio.git
Changes:
* sockets accept()ed by a TCP_NOPUSH/TCP_CORK listener automatically flush on kgio_*read calls if there is pending data. "Kgio.autopush = false" disables this globally, and Kgio::Socket also get "kgio_autopush=" to enable/disable on a per-object individual basis.
* ECONNRESET exceptions get empty backtraces for kgio_*read. There's nothing a programmer can do about these, so there's no point in going through the expensive backtrace generation process.
* Kgio.try* singleton methods added for working with non-Kgio enhanced objects. No more needing to use Object#extend and blowing away your method cache to make existing I/O objects kinder and gentler.
* IPv6 support should be complete, systems without a native getaddrinfo(3) are now unsupported (and will remain so unless somebody complains).
There should be no other backwards-incompatible changes other than requiring getaddrinfo(3) and friends for IPv6 support. |
|