about summary refs log tree commit homepage
DateCommit message (Collapse)
2011-03-10sleepy_penguin 2.0.0 v2.0.0
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.
2011-03-10signalfd.c: fix whitespace
2011-03-10inotify: release GVL during Inotify#close on 1.9
close(2) on inotify descriptors takes forever and a day.
2011-03-10inotify: add Inotify#each method for yielding each event
This is useful for processing events in a synchronous fashion, we think...
2011-03-10inotify.c: fix local variable name for RDoc
"in" is a keyword in Ruby and unusable as a local variable
2011-03-10README: misc updates
2011-03-10packaging updates, remove Isolate dependency
2011-03-10signalfd: attempt to support POSIX real-time signals
I know of no other way to support them in Ruby
2011-03-10eventfd: remove "_nonblock" interfaces
Instead, allow a nonblock flag to be passed to EventFD#incr and EventFD#value so it matches other interfaces.
2011-03-10TimerFD#expirations takes a nonblock flag
Just like Inotify#take
2011-03-10eventfd: test EventFD::MAX value
2011-03-10eventfd: test for :SEMAPHORE semantics
2011-03-10signalfd: flesh out SignalFD#take with non-blocking
Not that it works well...
2011-03-10Inotify#take releases GVL unconditionally
Avoids using select(2) if we want blocking functionality on Ruby 1.9.
2011-03-10split out missing bits for older glibc and kernels
They could be useful for other projects.
2011-03-10cleanup blocking region code for 1.8
Just reuse 1.9 methods
2011-03-10test_epoll_gc: disable expensive test by default
Not needed for most cases.
2011-03-10cleanup unneeded #define shortcuts
Never used anywhere
2011-03-10move set_nonblock() into util.c
No need to repeat it and bloat ourselves.
2011-03-10timerfd: hook up TimerFD#gettime
Oops, it was never wired up.
2011-03-10test_inotify: do not check 1.9 IO constants
None of our business.
2011-03-10doc: improve RDoc documentation
Might as well, since it forces me to understand these interfaces, too :)
2011-03-10signalfd: test with sigqueue() with DL help
Still doesn't work under 1.8, oh well :<
2011-03-10rework flags passing for ease-of-use
Arguments now take symbols and arrays of symbols just like the SignalFD.new method. This fixes some use of signed vs unsigned integer conversions as well.
2011-03-10remove SLEEPY_PENGUIN_VERSION constant
Bad idea to rely on constants
2011-03-06add SignalFD#update! method
This modifies an existing SignalFD.
2011-03-06signalfd: gets => take
For consistency with the inotify interface
2011-03-06disable epoll optimizations test if Strace::me is missing
Better than failing.
2011-03-06remove TimerFD.create, it's redundant
Even though it matches timerfd_create(), TimerFD.new is more consistent with the rest of the library.
2011-03-06inotify: some rdoc and comments
2011-03-05inotify: use StringValueCStr for paths
This will fail on '\0' bytes since it's an illegal path character.
2011-03-05add SignalFD interface
It's only working for Ruby 1.9 right now.
2011-03-05add top-level SP shortcut constant
Taking a hint from EM :)
2011-03-05eventfd.c: fixes for Ruby 1.9
Oops :X
2011-02-06pkg.mk: lib/ may not always exist
We could go C-only
2011-02-04sleepy_penguin 1.4.0 - Linux I/O events for Ruby v1.4.0
* Epoll#wait: do not automatically retry on EINTR * preliminary Inotify support * Epoll.new no longer defaults to close-on-exec TODO: FANotify + SignalFD
2011-02-04TODO: update with fanotify item
The fscking all notification system!
2011-02-04bump wrongdoc dependency
wrongdoc 1.5 is nicer
2011-02-04safety fix for Inotify#dup
We do not want to share buffers between inotify descriptors.
2011-02-04Epoll.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.
2011-02-04require rb_memerror and rb_io_close
The latest Rubinius supports both of these as do all MRI
2011-02-04epoll.c: safer replacement function naming
This can avoid confusion/conflicts in case we link with newer versions that have the missing symbols.
2011-02-04preliminary inotify support
It seems to basically work...
2011-02-04quiet build warnings for older systems
Harmless, but still
2011-02-04epoll.c: fix uninitialized fd variable
Oops :x This changes/fixes some minor misbehavior.
2011-02-04Epoll#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).
2011-02-02pkg.mk: use RbConfig instead of Config
Config is deprecated
2011-01-27pkg.mk: allow WRONGDOC variable to be overriden
This makes life easier for the wrongdoc package itself
2011-01-27pkg.mk: update in case we get rid of C ext
2011-01-21sleepy_penguin 1.3.1 - safety checks for delete v1.3.1
One bugfix for Epoll#delete: Eric Wong (1): safer closed checks for proxied objects