UNRELEASED HEAD ------------------------------------------------------------------------ * Fix incorrect boolean logic in src/linux/read.c (Credit: marcos69, closes #5) * Fix a build failure on mips64el. (Credit: YunQiang Su, from Debian Bug #754376) 2014-03-09 v2.0.3 ------------------------------------------------------------------------ * Fix the generation of libkqueue.pc 2014-02-23 v2.0.2 ------------------------------------------------------------------------ * Switch from SVN to Git * Switch hosting providers to Github * Switch to autoconf/automake 2013-05-08 v2.0.1 r646 ------------------------------------------------------------------------ * Improvements to the RPM package spec (Credit: Eric Wong) 2013-04-29 v2.0 r639 ------------------------------------------------------------------------ * Use ppoll(2) where possible to improve scalability. (Credit: Eric Wong) * Optimize kevent() when it is called with a zero timeout. (Credit: Eric Wong) * Avoid calling getsockopt() on file descriptors that are not sockets. (Credit: Eric Wong) * Call epoll_wait after linux_kevent_wait_hires() (Credit: Eric Wong) * Detect regular files correctly (Credit: Eric Wong) * Ensure that calling close() on a file descriptor will remove any kevents that reference the descriptor. [merged from ^/branches/stable@551] * Remove the SERIALIZE_KEVENT macro, and always protect kevent_copyin() and kevent_copyout() with a mutex. * Remove fine-grained locking at the knote level. * Add a counter that increments on each each kevent() call. When printing debug information within kevent(), display the value of the counter. This will be helpful when debugging a multithreaded program that may have multiple kevent() calls executing in parallel. (Credit: Julien Blache) 2010-09-18 v1.0 r344 ------------------------------------------------------------------------ * Support older Linux kernels that do not have the EPOLLRDHUP flag. * Add a portable implementation of the EVFILT_TIMER filter. * Add Solaris to the list of supported platforms. * Fixed the 'make rpm' target to work on CentOS 5. * Modified the manpage to remove unimplemented features. 2010-08-05 v0.9.3 r309 ------------------------------------------------------------------------ * Fix a typo in kevent_copyin() that caused EV_RECEIPT to set the data field incorrectly in some cases. (Credit to Julien Blache for discovering and fixing this bug) 2010-08-05 v0.9.2 r289 ------------------------------------------------------------------------ * Fix some build failures on 32-bit platforms related to the debugging codepaths being enabled by default. 2010-08-04 v0.9.1 r286 ------------------------------------------------------------------------ * Prevent dumping of EVFILT_VNODE debugging information to STDOUT. * Fix the 'make clean' target in the testsuite. 2010-08-01 v0.9 r285 ------------------------------------------------------------------------ * Set kevent.data = 1 for passive sockets that have at least one pending connection. (Credit to Julien Blache for finding and researching this bug) * Fix various compilation errors under Solaris. (Credit to Joakim Johansson for testing and providing patches) * Use the KQUEUE_DEBUG environment variable to turn on debugging output. 2010-07-21 v0.8 r264 ------------------------------------------------------------------------ * Fix a bug that prevented a knote with the EV_DISPATCH flag from being re-enabled after an event had been triggered. (Credit to Julien Blache for finding and researching this bug) 2010-06-08 v0.7 r248 ------------------------------------------------------------------------ * Add Debian packaging to the ports/ directory and improve the 'make deb' target. * Set the library soname version. * Switch from -fPIC to -fpic as the default in CFLAGS. 2010-03-28 v0.6 r238 ------------------------------------------------------------------------ * Experimental Linux kernel module. * Implement knote modification for signals. * Implement POSIX signal.c 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. 2009-12-26 v0.4 r133 ------------------------------------------------------------------------ * Incomplete and experimental support for Solaris added. * Lots of work on the test suite. * Replace the buggy GC thread with an event-based alternative. * Do not implicitly set EV_CLEAR in the EVFILT_USER filter. * Adjust the eventlist when EV_RECEIPT causes it to be modified. 2009-11-10 v0.3 r84 ------------------------------------------------------------------------ * The EVFILT_USER filter has been implemented, but needs additional testing. * The EVFILT_PROC filter is partially implemented on Linux, but is currently broken. * The unit tests have been moved to a separate subdirectory and now function under OpenBSD 4.4 using the native kqueue(2) and kevent(2) system calls. * The kqueue_free() function has been removed. * A helper thread performs garbage collection when close(2) is called on the file descriptor returned by kqueue(). * All symbols in that are not implemented are now undefined. * Major internal reorganization of the source tree. * A copy-and-paste error in vnode.c has been fixed. * The pthreads library is now required. 2009-11-07 v0.2 r59 ------------------------------------------------------------------------ * Implement EVFILT_TIMER on Linux. * Fix another 'make install' problem reported by Mario Schwalbe. * Do not link the test program with the pthreads library. * pkg-config no longer requires linking with -lpthread and -lrt. 2009-11-05 v0.1 r49 ------------------------------------------------------------------------ * Initial stable release.