X-Git-Url: https://git.llucax.com/software/libev.git/blobdiff_plain/a29fb691be0c199fb643de22a7969a410c3b1e31..89c65248d571a6a0ba88e2e0290db2c03f1e992c:/README diff --git a/README b/README index 5895388..f86fcf6 100644 --- a/README +++ b/README @@ -1,7 +1,10 @@ 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) @@ -22,6 +25,9 @@ to be faster and more correct, and also more featureful. Examples: - can correctly remove timers while executing callbacks (libevent doesn't handle this reliably and can crash) +- race-free signal processing + (libevent may delay processing signals till after the next event) + - less calls to epoll_ctl (stopping and starting an io watcher between two loop iterations will now result in spuriois epoll_ctl calls) @@ -46,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?)