sleepy_penguin 3.2.0 - minor bug fixes, preliminary kqueue supportv3.2.0
commitf039e80b90260f7c4a831806ddc4d22fc9d27eb4
authorEric Wong <normalperson@yhbt.net>
Tue, 16 Jul 2013 18:09:51 +0000 (16 18:09 +0000)
committerEric Wong <normalperson@yhbt.net>
Tue, 16 Jul 2013 18:09:51 +0000 (16 18:09 +0000)
tree32a9fb53f3c50ce9c4cdc88826ee81d5aa81c8c7
parent1694820af3bb917556404f61a1a1e19e845bc181
sleepy_penguin 3.2.0 - minor bug fixes, preliminary kqueue support

epoll support and thread-safety improvements.  The dangerous
Epoll::IO interface is now an option for those who want to share an
epoll descriptor across fork and maintain their own IO object
references to avoid extra overhead.  Use the regular (high-level)
Epoll interface unless you're willing to shoot yourself in the face.

There is also preliminary Kqueue support (which should work under
libkqueue on Linux).  Similar to our epoll interface (and unlike
most event libraries/frameworks) our kqueue interface also supports
one-shot notifications and _embraces_ multi-threaded use.

Note: unlike epoll, kqueue has close-on-fork behavior, so kqueue
descriptors are not (ever) inheritable across fork.

Added EPOLLWAKEUP constant (Linux 3.5 + glibc 2.17 required) to
allow descriptors to prevent system suspend while active
(this requires the CAP_BLOCK_SUSPEND privilege).

Inotify and Epoll interfaces now use thread-local buffers for
thread-safety and improved concurrency without GVL.

Errno::EINTR is no longer propagated into Ruby-land, for consistency
with existing Ruby IO APIs.
GIT-VERSION-GEN