Files | Admin

Notes:

Release Name: 1.4.0

Notes:
sleepy_penguin 1.4.0 - Linux I/O events for Ruby

sleepy_penguin provides access to newer, Linux-only system calls to wait
on events from traditionally non-I/O sources.  Bindings to the eventfd,
timerfd, and epoll interfaces are provided.

* http://bogomips.org/sleepy_penguin/
* sleepy.penguin@librelist.com
* git://bogomips.org/sleepy_penguin.git

Changes:

* Epoll#wait: do not automatically retry on EINTR
* preliminary Inotify support
* Epoll.new no longer defaults to close-on-exec

TODO: FANotify + SignalFD



Changes: GIT-VERSION-GEN | 2 +- TODO | 4 +- ext/sleepy_penguin/epoll.c | 42 +----- ext/sleepy_penguin/extconf.rb | 5 +- ext/sleepy_penguin/init.c | 11 ++- ext/sleepy_penguin/inotify.c | 293 ++++++++++++++++++++++++++++++++++++++ lib/sleepy_penguin.rb | 4 +- pkg.mk | 16 ++- sleepy_penguin.gemspec | 2 +- test/test_epoll.rb | 8 +- test/test_epoll_optimizations.rb | 4 +- test/test_inotify.rb | 62 ++++++++ 12 files changed, 398 insertions(+), 55 deletions(-) commit bba86c017d101c365c5a22b8e2b734ff7216ce56 Author: Eric Wong Date: Fri Feb 4 22:24:59 2011 +0000 sleepy_penguin 1.4.0 - Linux I/O events for Ruby * Epoll#wait: do not automatically retry on EINTR * preliminary Inotify support * Epoll.new no longer defaults to close-on-exec TODO: FANotify + SignalFD commit 4465548dd80cf779af53bbfee133f0be5f8f2791 Author: Eric Wong Date: Fri Feb 4 22:23:12 2011 +0000 TODO: update with fanotify item The fscking all notification system! commit 6b54faf7d855b7d9eb45bf437b022e2774f39826 Author: Eric Wong Date: Fri Feb 4 22:19:23 2011 +0000 bump wrongdoc dependency wrongdoc 1.5 is nicer commit 67fa5292823f4c38a35dd83c4948441ce8438d40 Author: Eric Wong Date: Fri Feb 4 22:16:07 2011 +0000 safety fix for Inotify#dup We do not want to share buffers between inotify descriptors. commit 92a666f3ff27539655e9130db16bd1587db061de Author: Eric Wong Date: Fri Feb 4 22:02:25 2011 +0000 Epoll.new does not default to close-on-exec No need to differ from other file descriptors, even though it would be better if *all* file descriptors would default to O_CLOEXEC. commit 6540be80d8dca8cf93e74273d04211c1a73a674e Author: Eric Wong Date: Fri Feb 4 22:00:29 2011 +0000 require rb_memerror and rb_io_close The latest Rubinius supports both of these as do all MRI commit 9f51099a6651d314d1ff5a435b6bc349d3472486 Author: Eric Wong Date: Fri Feb 4 21:57:45 2011 +0000 epoll.c: safer replacement function naming This can avoid confusion/conflicts in case we link with newer versions that have the missing symbols. commit 2cc41c38dc270ff764a5cc58fd81fbdacde9ff4b Author: Eric Wong Date: Fri Feb 4 10:58:40 2011 +0000 preliminary inotify support It seems to basically work... commit 7812324579b430fa604905410b506e9e88fdda55 Author: Eric Wong Date: Fri Feb 4 06:24:20 2011 +0000 quiet build warnings for older systems Harmless, but still commit 7fbb141402974a91ff925e3f303b1bc2c698b0d4 Author: Eric Wong Date: Fri Feb 4 06:21:07 2011 +0000 epoll.c: fix uninitialized fd variable Oops :x This changes/fixes some minor misbehavior. commit c02141cbfa965a19b236e4f9a09856bd2fcacca0 Author: Eric Wong Date: Fri Feb 4 06:00:20 2011 +0000 Epoll#wait: do not automatically retry on EINTR It's often used to drive event loops and EINTR should be retried by the user (like IO.select and not like IO#read_nonblock). commit 9dda070b66753e04a179e0cd36d1eff29195a7cb Author: Eric Wong Date: Wed Feb 2 18:29:09 2011 -0800 pkg.mk: use RbConfig instead of Config Config is deprecated commit fecdb9a57523cd2d38fc76fa8609388712aa075e Author: Eric Wong Date: Thu Jan 27 21:45:06 2011 +0000 pkg.mk: allow WRONGDOC variable to be overriden This makes life easier for the wrongdoc package itself commit 01e7012f27109295f7cc158f561091b07b831762 Author: Eric Wong Date: Thu Jan 27 06:18:35 2011 +0000 pkg.mk: update in case we get rid of C ext