ChangeLog from git://git.bogomips.org/sleepy_penguin.git () commit 97e9a7e764f912fddea75409dd388eaf3abe6a73 Author: Eric Wong Date: Sun Sep 26 06:29:09 2010 +0000 update documentation and build Should be ready for release commit 29bbb053277e9c054f1433c66a2e83ada44a5e8d Author: Eric Wong Date: Sun Sep 26 06:01:23 2010 +0000 test_epoll: workaround less aggressive GC in rbx Some of the GC tests aren't realistic, but if they work in MRI then we can expect them to work reasonably well everywhere. commit 43124e76e219d0be968fdeb09f6389d6895b0caf Author: Eric Wong Date: Sun Sep 26 06:00:10 2010 +0000 provide rb_io_close() for Rubinius Rubinius 1.1.1 does not include this function ref: http://github.com/evanphx/rubinius/issues/497 commit f3fd4447b650e75f48ac0fb9bada9b411c4b89cd Author: Eric Wong Date: Sun Sep 26 05:50:24 2010 +0000 epoll: fix typo for rb_memerror() Tested on Rubinius. commit 63b5fa10ae2f196f392bc6a9360ed2343215ce78 Author: Eric Wong Date: Sun Sep 26 04:00:30 2010 +0000 misc documentation updates We shall release without SignalFD support commit 1ad58cb0fd9045b8fa26b85d68ddf2eb06827dd3 Author: Eric Wong Date: Thu Sep 23 05:25:54 2010 +0000 wire up EventFD class This wraps the eventfd(2) interface of Linux. Like TimerFD, it is not available on older distributions. commit 2d5886698c3f7241ab23771c2876b985708ded40 Author: Eric Wong Date: Mon Sep 20 16:49:57 2010 +0000 add TimerFD class This wraps the timerfd_* interface in the Linux kernel. It is not available on older distributions. commit 4a9ce0319f6e0250c4a8e01284fd5684936bde21 Author: Eric Wong Date: Sun Sep 26 03:49:14 2010 +0000 epoll: add cross-thread test/example This can potentially be very powerful under 1.9 with native threads commit 96dad9948d3a7b181d50a9fcb35320677edc352b Author: Eric Wong Date: Sun Sep 26 03:48:50 2010 +0000 epoll: fix MRI 1.8 build It was just st.h in the old days. commit a226d237666728ea9242f6079b2c76528d53cdb2 Author: Eric Wong Date: Sun Sep 26 02:46:51 2010 +0000 Epoll#dup and Epoll#clone inherit close-on-exec There can be ways (in the future) where supporting Epoll#dup/Epoll#clone can proveuseful, so continue to support them until proven otherwise. commit 3ca3a23d3e68f62af6d57cf22825b2751c226fff Author: Eric Wong Date: Sun Sep 26 02:12:15 2010 +0000 simplify epoll_create1 wrapper There are no FD flags besides FD_CLOEXEC, so there's no point in making an extra fcntl() call. commit 43153f218e14cad3a2c6f4056fcf02dc49dc4b36 Author: Eric Wong Date: Sun Sep 26 01:41:47 2010 +0000 epoll: add fork protection It's dangerous to preserve epoll descriptors across fork, especially in Ruby where the GC can invalidate objects at any time. Installing pthread_atfork hooks prevents VALUE references stored in the kernel from leaking across process boundaries, making it far more difficult for a sanely written application to leak invalid VALUEs to the user. commit 81d66a794338e241e00b9ffd66fc94b80064475d Author: Eric Wong Date: Sat Sep 25 20:32:32 2010 +0000 Epoll#del only takes one argument We don't have to emulate the C API exactly, and it makes life saner/easier for our users. commit bc4aaf4afdfb42ad5cc5e0729f816fbefb3d338e Author: Eric Wong Date: Sat Sep 25 20:08:18 2010 +0000 epoll: factor out event data packing/unpacking Storing Ruby object values in the kernel means they won't be visible to the GC, but for the most part it's safe. commit 6296604742ed27ede171dad28f7d2bec2092d122 Author: Eric Wong Date: Sat Sep 25 19:27:09 2010 +0000 tests for EPOLLET and EINPROGRESS Just to make sure edge-triggering works on newly created TCP connections. commit e9e91bd9b9c571e9f3374a4b5aa44573f60c3d32 Author: Eric Wong Date: Sat Aug 21 09:00:57 2010 +0000 extconf: enable detection of {timer,signal,event}fd.h commit 7f841e560fae9406192994df352bfb902b2ebbe8 Author: Eric Wong Date: Sat Aug 21 09:00:42 2010 +0000 README: clarify that we're a Ruby library commit 133a7dad4b2179093e5bbb7db6db6c31a51817b7 Author: Eric Wong Date: Sat Aug 21 08:44:08 2010 +0000 initial - epoll support working