Posted By: Eric Wong
Date: 2011-01-15 12:07
Summary: sleepy_penguin 1.2.0 - epoll GC help
Project: Rainbows!
sleepy_penguin provides access to newer, Linux-only system calls to wait on events from traditionally non-I/O sources. Bindings to the eventfd, timerfd, and epoll interfaces are provided.
* http://bogomips.org/sleepy_penguin/ * sleepy.penguin@librelist.com />* git://git.bogomips.org/sleepy_penguin.git
Changes:
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. |
|