|
d84d8385
|
2009-11-27T15:24:32
|
|
Fix two use-after-free bugs in unit tests spoted by lock debugging
|
|
9bf124bf
|
2009-11-18T21:16:47
|
|
Build correctly with mm replacement turned off.
svn:r1547
|
|
b2fe4aed
|
2009-11-09T18:36:34
|
|
Unit tests for got_break and got_exit.
svn:r1521
|
|
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
|
|
784b8773
|
2009-11-06T21:46:57
|
|
We do not work any more without an event-config.h; stop pretending that it is meaningful to check for HAVE_CONFIG_H
svn:r1516
|
|
0fd0255f
|
2009-11-03T19:54:56
|
|
Remove compat/sys/_time.h
I've gone through everything that it declared to see where it was used,
and it seems that we probably don't need it anywhere.
Here's what it declared, and why I think we're okay dropping it.
o struct timeval {}
(Used all over, and we can't really get away with declaring it ourselves;
we need the same definition the system uses. If we can't find struct
timeval, we're pretty much sunk.)
o struct timespec {}
(Used in event.c, evdns.c, kqueue.c, evport.c. Of these,
kqueue.c and event.c include sys/_time.h. event.c conditions its use on
_EVENT_HAVE_CLOCK_GETTIME, and kqueue() only works if timespec is defined.)
o TIMEVAL_TO_TIMESPEC
(Used in kqueue.c, but every place with kqueue has sys/time.h)
o struct timezone {}
(event2/util.h has a forward declaration; only evutil.c references it and
doesn't look at its contents.)
o timerclear, timerisset, timercmp, timeradd, timersub
(Everything now uses the evutil_timer* variants.)
o ITIMER_REAL, ITIMER_VIRTUAL, ITIMER_PROF, struct itemerval
(These are only used in test/regress.c, which does not include _time.h)
o CLOCK_REALTIME
(Only used in evdns.c, which does not include _time.h)
o TIMESPEC_TO_TIMEVAL
o DST_*
o timespecclear, timespecisset, timespeccmp, timespecadd, timespecsub
o struct clockinfo {}
o CLOCK_VIRTUAL, CLOCK_PROF
o TIMER_RELTIME, TIMER_ABSTIME
(unused)
svn:r1494
|
|
96c6956e
|
2009-10-30T22:43:30
|
|
Add a "many events" regression test.
This is a glass-box test to get more coverage on the event loop
backends. We've run into bugs here before with fencepost errors, and
it turns out that none of our unit tests had enough events to
exercise the resize code.
Most of the backends have some kind of logic that resizes an array
when:
- The highest fd is too high
- The number of events added since the last iteration of the loop
is too high
- The number of active events is too high.
This test hits all 3 cases, and increases coverage in select.c by 7%,
in poll by 1%, and in kqueue by 9%.
svn:r1482
|
|
5b3fb5bf
|
2009-10-29T16:35:20
|
|
More documentation and unit tests for event_tagging.
svn:r1476
|
|
904b5721
|
2009-10-27T06:47:25
|
|
Avoid calling exit() during event_base_new*()
Previously, each of the three make-an-event-base functions would exit
under different, weird circumstances, but return NULL on others.
- All three would exit on OOM sometimes.
- event_base_new() and event_init() would die if all backends were
disabled.
- None of them would die if the socketpair() call failed.
Now, only event_init() exits on failure, and it exits on every kind of
failure. event_base_new() and event_base_new_with_config() never do.
svn:r1472
|
|
e9ee1057
|
2009-10-27T04:25:45
|
|
Give event_assign a return value, and make it less inclined to exit().
We also refactor event_assign so that it is the core function, and
event_set() is only the wrapper.
svn:r1469
|
|
ba8a1771
|
2009-10-02T03:03:58
|
|
Do not notify the main thread more than needed.
Basically, we suppress the notification when an event is added or deleted
and:
- The event has no fd, or there is no change in whether we are
reading/writing on the event's fd.
- The event has no timeout, or adding the event did not make the earliest
timeout become earlier.
This should be a big efficiency win in applications with multiple threads and
lots of timeouts.
svn:r1439
|
|
8cc68835
|
2009-07-25T03:35:32
|
|
Fix the main/methods unit test to pass from "make verify".
The problem was introduced when we changed the semantics of
get_supported_methods() to reflect all the methods that exist.
Previously, it had not returned methods disabled from the environment,
but the test didn't know that.
svn:r1379
|
|
49de08ef
|
2009-07-21T19:20:44
|
|
Push coverage of event.c a little higher
svn:r1373
|
|
f4775918
|
2009-07-20T14:55:51
|
|
Refactor evtag tests into their own suite.
svn:r1366
|
|
e8400a43
|
2009-07-20T14:55:35
|
|
Rename encode_int(64) to avoid polluting the global namespace.
They're now called evtag_encode_int(64). The old names are available
as macros in event2/tag_compat.h.
Also, add unit tests for encode/decode_int64.
svn:r1365
|
|
5d71b25b
|
2009-07-17T18:38:38
|
|
Remove all trailing whitespace from end-of-line.
svn:r1350
|
|
d4e3671f
|
2009-07-17T18:38:21
|
|
Add a test to free_active_base to free a base with an active event.
svn:r1349
|
|
e224321c
|
2009-07-14T18:49:42
|
|
Convert and expand free_active_base/event_base_new tests to avoid dbl-free. Patch from Zack Weinberg
svn:r1342
|
|
b45cead7
|
2009-04-30T18:05:33
|
|
Make environment-variable tests work on win32, which has only one method and lacks (un)setenv.
svn:r1253
|
|
586aa468
|
2009-04-28T19:08:27
|
|
Unit test for disabling events with EVENT_NO*, and for EVENT_BASE_FLAG_IGNORE_ENV.
svn:r1247
|
|
d70b0804
|
2009-04-23T18:08:42
|
|
Make main/methods test pass on systems where only one backend exists.
svn:r1235
|
|
0068c98a
|
2009-04-23T00:01:14
|
|
Make version test ignore the bottom byte of the version number.
svn:r1225
|
|
b21be245
|
2009-04-23T00:00:55
|
|
Somehow free_active_base was using the socketpair, but not saying it needed it. How did this ever work?
svn:r1223
|
|
1f9c9e51
|
2009-04-22T15:38:50
|
|
Add a missing "static".
svn:r1219
|
|
133a015d
|
2009-04-21T18:48:05
|
|
Make sure the test case for mem_functions hits strdup too.
svn:r1218
|
|
7f1855d0
|
2009-04-21T18:47:35
|
|
Add a basic test for set_mem_functions
svn:r1216
|
|
386279d0
|
2009-04-21T18:47:02
|
|
Add a test for event_pending; especially the timeout part.
svn:r1214
|
|
ff1f4295
|
2009-04-21T18:46:43
|
|
Unit tests for event_base_once.
svn:r1213
|
|
ea664bf2
|
2009-04-21T18:46:30
|
|
Refactor test wrappers to divide legacy items from useful stuff.
svn:r1212
|
|
122e934e
|
2009-04-21T18:46:11
|
|
Add unit tests for version methods and feature-based backend selection
svn:r1211
|
|
7cf8a7b0
|
2009-04-21T18:45:59
|
|
Call the main testcases "main", not "legacy".
svn:r1210
|
|
a8f6d961
|
2009-04-17T06:56:09
|
|
Actually stop using EVBUFFER_LENGTH/DATA, and move them to buffer_compat.h
svn:r1183
|
|
68d0139f
|
2009-04-07T04:49:25
|
|
Refactor the zlib and pthreads tests to appear in the regular tinytest tree structure.
svn:r1141
|
|
71604d85
|
2009-02-10T19:38:25
|
|
Remove some needless includes
svn:r1104
|
|
f9e4e0f9
|
2009-02-03T18:28:53
|
|
Move bufferevent tests to regress_bufferevent.c file.
svn:r1101
|
|
ea4b8724
|
2009-02-02T19:22:13
|
|
checkpoint work on big bufferevent refactoring
svn:r1095
|
|
a30c9eb1
|
2009-02-01T01:07:12
|
|
Move evbuffer tests into their own file.
svn:r1087
|
|
12e8db5b
|
2009-01-31T18:36:47
|
|
Convert evtag test.
svn:r1085
|
|
5831d11a
|
2009-01-31T18:36:37
|
|
Move rpc_test to regress_rpc.
svn:r1084
|
|
fa6ae169
|
2009-01-31T18:36:24
|
|
Convert RPC suite. There are still some places it can exit(1), but those always run forked, so no big deal.
svn:r1083
|
|
eac75f91
|
2009-01-31T07:32:14
|
|
Port DNS tests.
svn:r1081
|
|
153093ec
|
2009-01-30T17:44:13
|
|
Port the HTTP unit tests. Most are still legacy (since they use test_ok so much), but at least they no longer exit(1) on failure
svn:r1076
|
|
241690b2
|
2009-01-30T17:43:59
|
|
Move util tests to regress_util.c
svn:r1075
|
|
4e9470b4
|
2009-01-30T17:43:48
|
|
Convert test_evutil_strtoll to new framework.
svn:r1074
|
|
a8203b34
|
2009-01-29T23:19:57
|
|
Refactor unit tests using my spiffy new "tinytest" framework.
The big win here is that we can get process-level isolation.
This has been tested to work okay on at least Linux and Win32. Only
the tests in regress.c have been converted wrapped in the new wrapper
functions; the others are still on the old system.
svn:r1073
|
|
cc7a53c1
|
2009-01-29T18:15:36
|
|
fix signed/unsigned warning in unit tests. can we just use "char*" on all new APIs? this void/unsigned char*/char* business is awful.
svn:r1071
|
|
7dd362b1
|
2009-01-29T15:09:24
|
|
Have util-internal.h define socklen_t if we need it, and include it appropriately. This fixes win32 compilation.
svn:r1070
|
|
66b2a7ff
|
2009-01-29T03:20:40
|
|
test evbuffer_add_reference
svn:r1068
|
|
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
|
|
8889a770
|
2009-01-27T22:30:46
|
|
Replace all use of config.h with event-config.h.
svn:r1064
|
|
9993137c
|
2009-01-27T21:10:31
|
|
Remove all trailing whitespace in all the source files.
svn:r1063
|
|
30653899
|
2009-01-27T16:35:28
|
|
make it so that test_persistent_timeout can call loopexit only once; reported by Alexander Drozdov
svn:r1062
|
|
f20902a2
|
2009-01-22T17:56:15
|
|
Remove evperiodic_assign and its related parts: its functionality is subsumed by EV_PERSIST timeouts.
svn:r1040
|
|
dc1526e0
|
2009-01-22T17:48:16
|
|
Fix warnings on compile: make static functions static.
svn:r1037
|
|
fe72c885
|
2009-01-22T06:23:14
|
|
fix signal processing for non-kqueue backends; when a signal callback delivers a signal; from Alexander Drozdov
svn:r1035
|
|
a077fb8c
|
2009-01-22T02:47:35
|
|
rename sys/signal.h to signal.h; configure m4 macro dir; this assist with compilation on Haiku
svn:r1033
|
|
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
|
|
169321c9
|
2009-01-13T20:26:37
|
|
Rename four internal headers to follow the -internal.h convention.
svn:r1000
|
|
0d9d5cfe
|
2009-01-02T20:46:12
|
|
New functions in evutil to clone inet_pton and inet_ntop, with tests.
Adapted from Tor code.
svn:r983
|
|
eed23451
|
2008-12-25T16:20:45
|
|
forgot to re-enable dns tests
svn:r978
|
|
d776f846
|
2008-12-23T22:23:37
|
|
deprecate the usage of signal_{add,del,set} and name it evsignal_{add,del,set} instead; move the old definitions to compat
svn:r973
|
|
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
|
|
ebcf5efc
|
2008-12-19T22:42:51
|
|
fix memory leaks in the regression tools; add another close detection test that validates that there are no dangling connections on the server
svn:r969
|
|
3b24f4ee
|
2008-07-25T00:48:30
|
|
another fix; we also need to remove the signal event from the queue
svn:r918
|
|
a4e2f52a
|
2008-07-20T23:31:28
|
|
add a signal and free the base for reinit test
svn:r915
|
|
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
|
|
5512be01
|
2008-07-11T15:15:04
|
|
fix a bug where deleting signals with kqueue would delete subsequent adds
svn:r899
|
|
2f8708db
|
2008-06-24T18:04:41
|
|
ifdef out a whole bunch of sections; gettimeofday to evutil_gettimeofday
svn:r862
|
|
99a1063e
|
2008-06-21T02:21:25
|
|
support 64-bit integers in rpc structs
svn:r856
|
|
9586a1cb
|
2008-06-01T16:21:24
|
|
fix an evbuffer corruption when adding an empty evbuffer; from Scott Lamb
svn:r845
|
|
39400e68
|
2008-05-30T16:56:34
|
|
Patch from Valery Kholodkov: support for edge-triggered events with epoll and kqueue. Changed from original patch: made test into a regression test, with explicit success/failure for edge-triggered and non-edge-triggered cases. Closes SF request 1968284.
svn:r840
|
|
2deb3ce0
|
2008-05-29T01:39:43
|
|
simplify handling of environment variables for disabling backends;
make event_get_supported_methods obey environment variables; this
fixes make verify; problem reported by Scott Lamb.
svn:r838
|
|
134344b7
|
2008-05-16T01:55:40
|
|
Fix use of freed memory in event_reinit; pointed out by Peter Postma
svn:r834
|
|
7be8f13b
|
2008-05-14T15:56:17
|
|
r19736@catbus: nickm | 2008-05-14 11:50:49 -0400
Add casts to make some printf formats in regress.c happier.
svn:r821
|
|
0cafdeb6
|
2008-05-12T17:16:47
|
|
Tweaks to make unit tests fail less badly on mingw on trunk.
svn:r814
|
|
c6da86ff
|
2008-05-12T16:44:24
|
|
r19709@catbus: nickm | 2008-05-12 12:42:48 -0400
Possible fix for [1960723] snprintf and vsnprintf return values are wrong on win32
svn:r813
|
|
8acb80b4
|
2008-05-08T22:51:39
|
|
r15551@tombo: nickm | 2008-05-08 14:49:20 -0400
Use _get_ convention for new accessor functions. (These are all new ones as of 2.0, I believe).
svn:r799
|
|
3f56e364
|
2008-05-08T05:56:20
|
|
event_base_new_with_config() and related methods
svn:r789
|
|
3b2022ef
|
2008-05-08T05:33:15
|
|
provide an api for retrieving the supported event mechanisms
svn:r788
|
|
caa368e1
|
2008-05-05T19:19:47
|
|
r19610@catbus: nickm | 2008-05-05 15:18:52 -0400
Switch strcmp() tests in test_evbuffer() to use memcmp instead. Previously they broke on my Linux box.
svn:r779
|
|
4e8a339e
|
2008-05-05T15:46:00
|
|
r19602@catbus: nickm | 2008-05-05 11:45:18 -0400
Make most of the tests use the new headers.
svn:r776
|
|
1d30750b
|
2008-05-03T22:10:09
|
|
support for periodic timeouts
svn:r762
|
|
f04497e4
|
2008-05-03T03:05:28
|
|
introduce evbuffer_reserve_space() and evbuffer_commit_space() to make processing in filters more efficient
svn:r757
|
|
ccb70f1b
|
2008-04-30T04:31:10
|
|
provide example bufferevent filters doing compression and decompression as additional regression test
svn:r751
|
|
c58a01a2
|
2008-04-30T00:50:20
|
|
fix regression test; oops
svn:r749
|
|
682adc44
|
2008-04-30T00:09:16
|
|
support input/output filters for bufferevents
svn:r748
|
|
3a17aeed
|
2008-04-26T01:00:44
|
|
fix a bug in buffrevent read water marks and add a test for them
svn:r731
|
|
89f63b20
|
2008-04-25T02:44:46
|
|
add bufferevent_read_buffer function
svn:r728
|
|
193c06a7
|
2008-03-31T02:04:34
|
|
fix a bug in which evbuffer_add_vfprintf would loop forever; avoid
fragmentation in evbuffer_expand by increasing the size of the last buffer
in the chain; as a result with have to keep track of the previous_to_last
chain; provide a evbuffer_validate() function in the regression test to
make sure that all evbuffer are internally consistent.
svn:r699
|
|
558de9b3
|
2008-03-02T21:18:33
|
|
Provide OpenSSL style support for multiple threads accessing the same event_base
svn:r684
|
|
0e7cbe65
|
2008-02-28T17:38:52
|
|
r18482@catbus: nickm | 2008-02-28 12:38:40 -0500
Fix GCC 4.2 warnings; fix includes in subdirs.
svn:r675
|
|
5c70ea4c
|
2008-02-28T02:47:43
|
|
improved code for evbuffer; avoids memcpy
svn:r674
|
|
bd31d00f
|
2008-02-26T04:54:19
|
|
move signal callbacks closer to test code
svn:r670
|
|
67bf29ad
|
2008-02-23T06:02:04
|
|
simplify evbuffer by removing orig_buffer
svn:r654
|
|
11230f7e
|
2008-02-18T20:04:01
|
|
r18145@catbus: nickm | 2008-02-18 15:02:20 -0500
Stop using deprecated autoconf code to set integer types; detect actual files to include more thoroughly. This should make us work on solaris 9 again. This should be a backport candidate, if it works. Also, make all libevent code use ev_uint32_t etc, rather than uint_32_t.
svn:r649
|
|
807ab182
|
2008-02-16T20:49:47
|
|
r14211@tombo: nickm | 2008-02-16 15:28:54 -0500
Add new evutil_strtoll() function so we can apply 64-bit content-length patch from Scott Lamb in a portable way.
svn:r640
|
|
8c66d4e2
|
2008-01-26T07:29:57
|
|
remove pending timeouts on event_base_free
svn:r627
|
|
7e3a7af7
|
2007-12-24T23:59:41
|
|
support string arrays in event_rpcgen
svn:r613
|
|
68725dc8
|
2007-12-23T07:38:11
|
|
support integer arrays in rpc structures; this involved some refactoring of the event_rpcgen code, so that other types should be able to get arrays fairly easily
svn:r609
|
|
a5176a65
|
2007-12-20T22:45:30
|
|
Fix a win32 warning in regress.c
svn:r608
|