Files | Admin

Notes:

Release Name: 2.3.0

Notes:
kgio 2.3.0 - MSG_PEEK and poll(2) support

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:

recv() with MSG_PEEK for sockets is added with the try*
interface.  SocketMethods#kgio_trypeek and
SocketMethods#kgio_peek or Kgio.trypeek for non-Kgio-enabled
sockets.

For Ruby 1.9 only: poll(2) is exposed via the Kgio.poll
singleton method and should provide an alternative for IO.select
users.

Both of these new features should work well on modern Unix-like
operating systems.



Changes: .document | 2 + GIT-VERSION-GEN | 2 +- README | 2 +- ext/kgio/accept.c | 15 ++++- ext/kgio/autopush.c | 45 ++++++++++++ ext/kgio/connect.c | 12 +++ ext/kgio/extconf.rb | 1 + ext/kgio/kgio.h | 4 + ext/kgio/kgio_ext.c | 1 + ext/kgio/poll.c | 186 +++++++++++++++++++++++++++++++++++++++++++++++++ ext/kgio/read_write.c | 72 +++++++++++++++++++ lib/kgio.rb | 2 + pkg.mk | 15 +++-- test/test_peek.rb | 35 +++++++++ test/test_poll.rb | 68 ++++++++++++++++++ 15 files changed, 453 insertions(+), 9 deletions(-) commit f74bcf37ed31611d14aba2d4b4518c6a3dea0f40 Author: Eric Wong Date: Wed Feb 9 10:10:36 2011 +0000 kgio 2.3.0 - MSG_PEEK and poll(2) support recv() with MSG_PEEK for sockets is added with the try* interface. SocketMethods#kgio_trypeek and SocketMethods#kgio_peek or Kgio.trypeek for non-Kgio-enabled sockets. For Ruby 1.9 only: poll(2) is exposed via the Kgio.poll singleton method and should provide an alternative for IO.select users. Both of these new features should work well on modern Unix-like operating systems. commit 00d1bc89ed3811701195bf5ddb400a0a0067126f Author: Eric Wong Date: Tue Feb 8 14:11:45 2011 -0800 move poll support checks to kgio.h We may use poll elsewhere... commit 257b090af54e6a1cecd44325f8664c4c682a6740 Author: Eric Wong Date: Tue Feb 8 13:56:39 2011 -0800 pkg.mk: update to the latest * Fixes Ruby 1.9.3dev deprecation warnings * Fixes some documentation dependency issues * Allows RUBY_TEST_OPTS to be passed to unit tests commit d8616b605ad4d83b69e2679e1c210e476cc18e00 Author: Eric Wong Date: Tue Feb 8 13:50:55 2011 -0800 doc: fully RDoc all methods and classes Whee! commit 3f6bffb4c4297df48a69d146243fbe5ba8040cb5 Author: Eric Wong Date: Tue Feb 8 13:50:01 2011 -0800 doc: fix accept -> tryaccept copy+paste error Oops commit 823e8978b38dcfb642e5059e879af4209ebba0f1 Author: Eric Wong Date: Tue Feb 8 13:36:56 2011 -0800 README: fix download link/ref commit 5c480aee3067006b5da6d45b7de41d8401b70848 Author: Eric Wong Date: Tue Feb 8 10:41:51 2011 +0000 preliminary poll(2) support It's a nice alternative to IO.select for higher-numbered file descriptors, especially sparse ones. Our interface also generates less garbage than IO.select does. commit 47653194bf6ad53b9f5fca1b266c30855df5ebbd Author: Eric Wong Date: Sun Feb 6 21:56:35 2011 +0000 add support for recv() with MSG_PEEK Kgio.trypeek, kgio_trypeek and kgio_peek methods are added for using with sockets.