sleepy_penguin 3.1.0 - minor fixes and features / 2012-05-02 09:01 UTC

* add TimerFD::CANCEL_ON_SET constant
  ref: http://www.man7.org/tlpi/api_changes/
* fix concurrent Epoll#wait on the same epoll fd
* SignalFD interface removed (unworkable with Ruby runtimes)
* use rb_update_max_fd() if available (Ruby 1.9.3)
* reintroduce SLEEPY_PENGUIN_VERSION constant ("3.1.0")

sleepy_penguin 3.0.1 - really avoids EINTR / 2011-05-21 02:40 UTC

One bugfix:

* epoll: avoid race condition in EINTR checking

  Even if we timeout while getting an EINTR, we'll retry
  epoll_wait() with a zero timeout like IO.select does in Ruby to
  avoid raising Errno::EINTR.

sleepy_penguin 3.0.0 / 2011-05-21 00:22 UTC

Epoll#wait always waits the specified amount of time and never
raises Errno::EINTR.

Disabled operations on Fixnum file descriptors, only IO objects
may be passed to Epoll methods.

Cross-thread Epoll#close behavior matches Ruby 1.9.3dev.

Improved Rubinius support (lightly tested).

sleepy_penguin 2.0.0 / 2011-03-10 04:43 UTC

There are many internal cleanups, bugfixes, and incompatible
API changes.  The API will probably be stable from now on.

All the flag passing is less verbose, in the past you had
to do:

    tfd = TimerFD.new(TimerFD::CLOEXEC|TimerFD::NONBLOCK)

Now, you can just do (the old way still works):

    tfd = TimerFD.new([:CLOEXEC, :NONBLOCK])

A SignalFD interface now exists, but is not recommended since
MRI signal handling seems to conflict with it.

Inotify#close no longer holds the GVL while closing the
descriptor since it is an expensive operation.

See git log v1.4.0..v2.0.0 for all the gory details.

sleepy_penguin 1.4.0 - Linux I/O events for Ruby / 2011-02-04 22:27 UTC

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

TODO: FANotify + SignalFD

sleepy_penguin 1.3.1 - safety checks for delete / 2011-01-22 00:52 UTC

One bugfix for Epoll#delete:

Eric Wong (1):
      safer closed checks for proxied objects

sleepy_penguin 1.3.0 - incremental improvements / 2011-01-21 23:12 UTC

This release introduces compatibility with pre-EPOLLRDHUP
systems.

It also optimizes syscalls away for Epoll#set and Epoll#delete.
Epoll#add, Epoll#mod and Epoll#del should no longer be needed in
most code.

sleepy_penguin 1.2.0 - epoll GC help / 2011-01-15 12:06 UTC

One convenience fix:

  epoll: prevent IO objects from getting GC-ed

  Users of our code may forget to keep references for their IO
  objects at all, and since it's not possible for GC to mark
  kernel memory, we just hold on to the IO objects for them.

  We can't unmark close()d file descriptors, ever, so we don't
  bother with the EPOLL_CTL_DEL case, either.  Just storing IO
  objects in an array using the raw descriptor as a key will allow
  bounded space usage just like the in-kernel FD tables as long
  as the user remembers to close descriptors themselves.

sleepy_penguin 1.1.1 - soft feathers, soft delete / 2011-01-13 22:41 UTC

SleepyPenguin::Epoll#delete method added for "soft" failures
Documentation updates and cleanups, the website is now
JavaScript-free!

(Ignore the 1.1.0 "release", it was a lie)

sleepy_penguin 1.0.0 / 2010-09-26 06:31 UTC

Initial release

Originally generated with the Darkfish Rdoc Generator 2, modified by wrongdoc.

We love to hear from you!
Email patches (with git send-email), pull requests, questions, bug reports, suggestions, etc. to us publically at sleepy.penguin@librelist.org.
To subscribe, just send any email to sleepy.penguin@librelist.org, and respond to the automated confirmation message.
Do not waste bandwidth with HTML, HTML mail will not be read.
Quote only parts you're responding to and do not top post.
For sensitive topics, email us privately at sleepy.penguin@bogomips.org.