split Epoll and Epoll::IO, rewrite Epoll in Ruby
commit83b903d3ffc99f0377fee8d051fe23f475591546
authorEric Wong <normalperson@yhbt.net>
Thu, 11 Apr 2013 02:58:51 +0000 (11 02:58 +0000)
committerEric Wong <normalperson@yhbt.net>
Fri, 12 Apr 2013 22:25:00 +0000 (12 22:25 +0000)
treeaabba5a132a854432129c9de274386cd630cd111
parent5bfc2dd29748c559e833ff654b5210067a1d9e91
split Epoll and Epoll::IO, rewrite Epoll in Ruby

Epoll::IO is a dangerous, low-level class which is intended
for users aware of the GC and fork behavior of epoll in the
Linux kernel.

Rewriting the higher-level Epoll in Ruby makes it easier to
maintain, especially since Rubinius has no GVL while running
C extensions.
ext/sleepy_penguin/epoll.c
ext/sleepy_penguin/epoll_green.h
lib/sleepy_penguin.rb
lib/sleepy_penguin/epoll.rb [new file with mode: 0644]
test/test_epoll.rb
test/test_epoll_io.rb [new file with mode: 0644]
test/test_epoll_optimizations.rb