X-Git-Url: https://git.llucax.com/software/libev.git/blobdiff_plain/efb07571c1a235448b70212dc46467214da4bb92..96c68b67a0641d167fa6422f2fd1c1f74c25a83e:/README?ds=sidebyside diff --git a/README b/README index 9666047..0e756fd 100644 --- a/README +++ b/README @@ -1,5 +1,8 @@ -libev is modelled after libevent (http://monkey.org/~provos/libevent/), but aims -to be faster and more correct, and also more featureful. Examples: +libev is modelled (very losely) after libevent +(http://monkey.org/~provos/libevent/), but aims to be faster and more +correct, and also more featureful. Examples: + +(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. @@ -9,8 +12,8 @@ to be faster and more correct, and also more featureful. Examples: - 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. @@ -50,7 +53,11 @@ 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. + +- doesn't rely on nonportable BSD header files. whats missing?