|
|
1 | Homepage: http://software.schmorp.de/pkg/libev |
|
|
2 | E-Mail: libev@schmorp.de |
|
|
3 | |
1 | libev is a high-performanc3 event loop/event model with lots of features. |
4 | libev is a high-performance event loop/event model with lots of features. |
2 | |
5 | |
3 | It is modelled (very losely) after libevent |
6 | It is modelled (very losely) after libevent |
4 | (http://monkey.org/~provos/libevent/) and the Event perl module, but aims |
7 | (http://monkey.org/~provos/libevent/) and the Event perl module, but aims |
5 | to be faster and more correct, and also more featureful. |
8 | to be faster and more correct, and also more featureful. |
6 | |
9 | |
7 | DIFFERENCES AND COMPARISON TO LIBEVENT: |
10 | DIFFERENCES AND COMPARISON TO LIBEVENT: |
8 | |
11 | |
9 | (comparisons relative to libevent-1.3e and libev-0.00) |
12 | (comparisons relative to libevent-1.3e and libev-0.00, see also the benchmark |
|
|
13 | at http://libev.schmorp.de/bench.html). |
10 | |
14 | |
11 | - multiple watchers can wait for the same event without deregistering others, |
15 | - multiple watchers can wait for the same event without deregistering others, |
12 | both for file descriptors as well as signals. |
16 | both for file descriptors as well as signals. |
13 | (registering two read events on fd 10 and unregistering one will not |
17 | (registering two read events on fd 10 and unregistering one will not |
14 | break the other). |
18 | break the other). |
… | |
… | |
24 | |
28 | |
25 | - timers can be repeating (both absolute and relative ones). |
29 | - timers can be repeating (both absolute and relative ones). |
26 | |
30 | |
27 | - detects time jumps and adjusts timers |
31 | - detects time jumps and adjusts timers |
28 | (works for both forward and backward time jumps and also for absolute timers). |
32 | (works for both forward and backward time jumps and also for absolute timers). |
29 | |
|
|
30 | - can correctly remove timers while executing callbacks |
|
|
31 | (libevent doesn't handle this reliably and can crash). |
|
|
32 | |
33 | |
33 | - race-free signal processing |
34 | - race-free signal processing |
34 | (libevent may delay processing signals till after the next event). |
35 | (libevent may delay processing signals till after the next event). |
35 | |
36 | |
36 | - less calls to epoll_ctl |
37 | - less calls to epoll_ctl |
… | |
… | |
64 | - doesn't rely on nonportable BSD header files. |
65 | - doesn't rely on nonportable BSD header files. |
65 | |
66 | |
66 | - a event.h compatibility header exists, and can be used to run a wide |
67 | - a event.h compatibility header exists, and can be used to run a wide |
67 | range of libevent programs unchanged (such as evdns.c). |
68 | range of libevent programs unchanged (such as evdns.c). |
68 | |
69 | |
|
|
70 | - win32 compatibility for the core parts. |
|
|
71 | |
|
|
72 | - the event core library (ev and event layer) compiles and works both as |
|
|
73 | C and C++. |
|
|
74 | |
69 | whats missing? |
75 | whats missing? |
70 | |
76 | |
71 | - evbuffer, evhttp, bufferevent are missing. |
77 | - no event-like priority support at the moment (the ev priorities |
|
|
78 | are not yet finished and work differently, but you can use idle watchers |
|
|
79 | to get a similar effect). |
72 | |
80 | |
73 | - no priority support at the moment (but likely to be delivered later). |
81 | AUTHOR |
74 | |
82 | |
75 | - kqueue, poll (libev currently implements epoll and select). |
83 | libev was written and designed by Marc Lehmann and Emanuele Giaquinta. |
76 | |
84 | |
77 | - windows support (whats windows?). |
85 | The following people sent in patches or made other noteworthy |
|
|
86 | contributions (if I forgot to include you, please shout at me, it was an |
|
|
87 | accident): |
78 | |
88 | |
|
|
89 | W.C.A. Wijngaards |
|
|
90 | Christopher Layne |
|
|
91 | Chris Brody |
|
|
92 | |