Kgio 2.4.0 - kinder, gentler I/O for Ruby

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.

= Portability fixes and more

Changes:

== All supported platforms (*nix + MRI 1.8+, Rubinius)

  • OpenBSD (and possibly other *BSD) fixes, thanks to Jeremy E…

  • kgio_accept and kgio_tryaccept now take an optional second argument
    for flags (like the accept4() flags argument).

== Ruby 1.9-only things

  • Kgio.poll no longer raises Errno::EINTR to match IO.select.

== Ruby 1.9 trunk things

  • close() on an active FD in a different thread is better
    handled/detected.

  • copy-on-write for strings is properly triggered