darling-libkqueue/ChangeLog
mheily aed62e257a Release 2.0
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@639 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2013-04-30 02:15:04 +00:00

189 lines
6.3 KiB
Plaintext

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 <sys/event.h> 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.