X-Git-Url: https://git.llucax.com/software/libev.git/blobdiff_plain/fd6d7a01bca4544f5674438b189ba5ec1bce98af..ed301985e66cac8cb0243d42cc8e71f4d8b32f9a:/README diff --git a/README b/README index 5440551..1f3917d 100644 --- a/README +++ b/README @@ -1,15 +1,18 @@ libev is modelled after libevent (http://monkey.org/~provos/libevent/), but aims to be faster and more correct, and also more featureful. Examples: -- multiple watchers can wait for the same event without deregistering others. +(comparisons relative to libevent-1.3e and libev-0.00) + +- multiple watchers can wait for the same event without deregistering others, + both for file descriptors as well as signals. (registering two read events on fd 10 and unregistering one will not break the other) - fork() is supported and can be handled (there is no way to recover from a fork when libevent is active) -- timers are handled as a priority queue - (libevent uses a less efficient red-black tree) +- timers are handled as a priority queue (important operations are O(1)) + (libevent uses a much less efficient but more complex red-black tree) - supports absolute (wallclock-based) timers in addition to relative ones, i.e. can schedule timers to occur after n seconds, or at a specific time. @@ -49,14 +52,18 @@ to be faster and more correct, and also more featureful. Examples: - simpler design, backends are potentially much simpler (in libevent, backends have to deal with watchers, thus the problems) - (epoll backend in libevent: 366 lines, libev: 89 lines, and more features) + (epoll backend in libevent: 366 lines, libev: 90 lines, and more features) + +- libev handles EBADF gracefully by removing the offending fds. whats missing? - evdns, evhttp, bufferevent are missing, libev is only an even library at the moment. -- no priority support at the moment. +- no priority support at the moment + +- kqueue, poll (libev currently implements epoll and select) -- kqueue, poll (libev currently implements epoll and select). +- windows support (whats windows?)