]> git.llucax.com Git - software/libev.git/blobdiff - README
created new documentation
[software/libev.git] / README
diff --git a/README b/README
index 5895388b2665abd544d45e97c58619db9618e0e9..0e756fdbad02142fcbd25f8aaf1ad275c1761053 100644 (file)
--- a/README
+++ b/README
@@ -1,15 +1,19 @@
-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:
 
-- 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.
@@ -22,6 +26,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 +53,20 @@ 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?
 
 - 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?)