|
693c24ef
|
2009-11-09T17:16:30
|
|
Implement queued timeouts for case where many timeouts are the same.
Libevent's current timeout code is relatively optimized for the
randomly scattered timeout case, where events are added with their
timeouts in no particular order. We add and remove timeouts with
O(lg n) behavior.
Frequently, however, an application will want to have many timeouts
of the same value. For example, we might have 1000 bufferevents,
each with a 2 second timeout on reading or writing. If we knew this
were always the case, we could just put timeouts in a queue and get
O(1) add and remove behavior. Of course, a queue would give O(n)
performance for a scattered timeout pattern, so we don't want to
just switch the implementation.
This patch gives the user the ability to explicitly tag certain
timeout values as being "very common". These timeout values have a
cookie encoded in the high bits of their tv_usec field to indicate
which queue they belong on. The queues themselves are each
triggered by an entry in the minheap.
See the regress_main.c code for an example use.
svn:r1517
|
|
5b5b880b
|
2009-07-28T19:41:39
|
|
Various MSVC cleanups from Brodie Thiesfield.
svn:r1385
|
|
0b4ab122
|
2009-05-28T15:47:15
|
|
Spell-check the the headers
svn:r1320
|
|
b4886ec8
|
2009-05-15T18:44:44
|
|
Trim 22 bytes from struct event on 32 bit platforms, more on 64-bit platforms.
svn:r1292
|
|
b85b710c
|
2009-01-27T22:34:36
|
|
Update copyright statements to reflect the facts that:
a) this is 2009
b) niels and nick have been comaintainers for a while
c) saying "all rights reserved" when you then go on to explicitly
disclaim some rights is sheer cargo-cultism.
svn:r1065
|
|
f20902a2
|
2009-01-22T17:56:15
|
|
Remove evperiodic_assign and its related parts: its functionality is subsumed by EV_PERSIST timeouts.
svn:r1040
|
|
56ea4687
|
2009-01-22T02:33:38
|
|
Change the semantics of timeouts in conjunction with EV_PERSIST; timeouts in that case will now repeat until deleted.
svn:r1032
|
|
02b2b4d1
|
2008-12-23T16:37:01
|
|
Restructure the event backends so that they do not need to keep track of events themselves, as a side effect multiple events can use the same fd or signal.
svn:r972
|
|
f7e61870
|
2008-07-11T15:49:04
|
|
support multiple events listening on the same signal; make signals regular events that go on the same event queue
svn:r901
|
|
21f76156
|
2008-06-25T16:32:47
|
|
change min_heap_idx to signed
svn:r883
|
|
6bf1ca78
|
2008-05-12T00:40:04
|
|
r19675@catbus: nickm | 2008-05-11 20:39:39 -0400
Stop pretending that u_char and u_short are standard types that win32 is dumb not to have. In fact, u_char can really just be spelled out, and u_short was usually just a bad way of saying ev_uint16_t.
svn:r808
|
|
957e9fd8
|
2008-05-05T17:49:52
|
|
r19607@catbus: nickm | 2008-05-05 13:49:44 -0400
Hack to make sure that there is always a working fast EVENT_FD()
svn:r777
|
|
bc6da5ea
|
2008-05-05T15:45:39
|
|
r19600@catbus: nickm | 2008-05-05 11:34:06 -0400
Move EV_* flags into event.h; they are a necessary part of the public API.
svn:r774
|
|
d0c3644e
|
2008-05-05T15:45:30
|
|
r19599@catbus: nickm | 2008-05-05 11:26:18 -0400
Turn event_initialized() and friends into a function; add function equivalents for EVENT_FD and EVENT_SIGNAL.
svn:r773
|
|
1d30750b
|
2008-05-03T22:10:09
|
|
support for periodic timeouts
svn:r762
|
|
8c750eaf
|
2008-05-03T21:37:33
|
|
separate signal events from io events
svn:r760
|
|
963ae2cf
|
2008-04-16T21:01:31
|
|
r15212@tombo: nickm | 2008-04-16 17:01:21 -0400
Remove some needless includes
svn:r712
|
|
0ac73078
|
2008-04-16T20:01:51
|
|
r15193@tombo: nickm | 2008-04-16 16:00:35 -0400
Split event.h into several new headers in include/event2. event.h is now just a wrapper that includes all the subheaders.
svn:r711
|