libkqueue 0.5 released

1 view
Skip to first unread message

Mark Heily

unread,
Feb 9, 2010, 10:30:16 PM2/9/10
to libkqueue...@googlegroups.com, libk...@googlegroups.com
A new version of libkqueue is now available. The stable SVN branch has been
synced with this revision.

2010-02-09 v0.5 r200
------------------------------------------------------------------------

* Prevent namespace pollution by hiding all ELF symbols except for
kqueue() and kevent().

* Add reference counting to the garbage collection mechanism so that
a kqueue object is never destroyed while multiple threads are using
it.

* Improve scalability by using red-black trees instead of linked lists.

* Refactor the internal API to promote modularity and code reuse.
Five methods are added to each filter: create, modify, delete,
enable, disable. These replace the copyin() method, which was
overly complicated.

* Remove the fine-grained locking at the filter level, and replace
it with coarse locking inside kevent(). This simplifys the locking
implementation and provides a stronger guarantee of reentrancy.

* Initial attempt at writing a Linux kernel module. It fails to
link because sys_epoll_create() and other event-related syscalls
are not available to kernelspace (?). Need to ask LKML for guidance.

* Make unit tests threadsafe and created a stresstest which runs
the unit tests in parallel.

* Use helper functions to reduce the amount of duplicate code in the
unit tests.

Reply all
Reply to author
Forward
0 new messages