Log

Author Commit Date CI Message
Nick Mathewson 2711cda3 2012-04-20T12:14:20 Split long lists in Makefile.am into one-item-per-line
Nick Mathewson 21205b83 2012-04-20T11:53:32 Shave 700 msec off the persistent_timeout_jump test
Nick Mathewson d992d911 2012-04-20T11:51:33 Merge remote-tracking branch 'origin/patches-2.0'
Nick Mathewson 03614a16 2012-04-20T11:51:13 Merge branch '20_periodic_event_overload_v2' into patches-2.0
Nick Mathewson dfd808cb 2012-04-19T00:25:12 If time has jumped so we'd reschedule a periodic event in the past, schedule it for the future instead Fixes an issue reported on libevent-users in the thread "a dead looping bug when changing system time backward". Previously, if time jumped forward 1 hour[*] and we had a one-second periodic timer event, that event would get invoked 3600 times. That's almost certainly not what anybody wants. In a future version of Libevent, we should expose the amount of time that the callbac kwould have been invoked somehow. [*] Forward time jumps can happen with nonmonotonic clocks, or with clocks that jump on suspend/resume. It can also happen from Libevent's point of view if the user exits from event_base_loop() and doesn't call it again for a while.
Nick Mathewson bec22b41 2012-04-19T18:15:12 Refactor event_persist_closure: raise and extract some common logic
Nick Mathewson 3f659e5a 2012-04-19T11:14:58 Merge remote-tracking branch 'origin/patches-2.0'
Nick Mathewson 37c4fc8d 2012-04-19T08:11:05 Merge pull request #52 from ghazel/20_evdns_probe cancel the probe request when the server is freed, and ignore cancelled probe callbacks
Greg Hazel 46b80608 2012-04-18T21:41:48 remove redundant DNS_ERR_CANCEL check, move comment
Greg Hazel 94d23360 2012-04-18T21:29:21 cancel the probe request when the server is freed, and ignore cancelled probe callbacks
Nick Mathewson 26ee5f90 2012-04-18T12:24:19 Note that make_base_notifiable should not be necessary
Nick Mathewson 5595a79f 2012-04-17T17:54:26 Merge branch '21_choose_monotonic'
Nick Mathewson d5e1d5ad 2012-04-17T15:16:08 Implement a GetTickCount-based monotonic timer for Windows
Nick Mathewson 55780a70 2012-04-17T13:09:49 On Linux, use CLOCK_MONOTONIC_COARSE by default You can make it use CLOCK_MONOTONIC again by setting the EVENT_BASE_FLAG_PRECISE_TIMER flag in the event_config.
Nick Mathewson ddd69d39 2012-04-17T13:04:02 EVENT_BASE_FLAG_PRECISE_TIMER indicates we want fine timer precision There are a bunch of backends that can give us a reasonably good monotonic timer quickly, or a very precise monotonic timer less quickly. For example, Linux has CLOCK_MONOTONIC_COARSE (1msec precision), which is over twice as fast as CLOCK_MONOTONIC. Since epoll only lets you wait with 1msec precision, CLOCK_MONOTONIC_COARSE is a clear win. On Windows, you've got GetTickCount{,64}() which is fast, and QueryPerformanceCounter, which is precise but slow. Note that even in the cases where the underlying timer claims to have nanosecond resolution, we're still not exposing that via Libevent. Note also that "Precision" isn't the same as "Resolution" or "Accuracy". A timer's precision is the smallest change that the clock will register; a timer's resolution is the fineness of its underlying representation; a timer's accuracy is how much it drifts with respect to "Real Time", whatever that means. (Terms and definitions from PEP 418.)
Nick Mathewson 1fbef7d5 2012-04-17T12:44:39 Move use_monotonic and friends into event_base The use_monotonic field used to be a static field set up at library setup. Unfortunately, this makes it hard to give the user a way to make speed/accuracy tradeoffs about time. Moving it into event_base should let the clock implementation become configurable.
Nick Mathewson b62b31f1 2012-04-11T21:33:27 Work-around a stupid gcov-breaking bug in OSX 10.6 This only affects the unit tests. Fix found at http://rachelbythebay.com/w/2011/07/12/forkcrash/
Nick Mathewson 53a07fe2 2010-09-17T00:34:13 Replace pipe-based notification with EVFILT_USER where possible Sufficiently recent kqueue implementations have an EVFILT_USER filter that we can use to wake up an event base from another thread. When it's supported, we now use this mechanism rather than our old (pipe-based) mechanism. This should save some time and complications on newer OSX and freebsds.
Nick Mathewson 9bf866f5 2012-04-09T19:49:58 Merge remote-tracking branch 'github/21_mach_time'
Nick Mathewson cb653a00 2012-04-09T13:41:45 Do not track use_monotonic field when is no monotonic clock
Nick Mathewson b8fd6f91 2012-04-09T13:39:11 Use mach_absolute_time() for monotonic clock support on OSX.
Nick Mathewson a969f7e7 2012-04-09T08:40:45 Merge pull request #50 from rosslagerwall/simplify-test Simplify test.sh code significantly.
Nick Mathewson 0af23d59 2012-04-09T11:33:08 Merge branch '21_weakrand'
Nick Mathewson 3aa44159 2012-04-09T11:30:46 Tweak the new evutil_weakrand_() code Make its state actually get seeded. Document it more thoroughly. Turn its state into a structure. Fix a bug in evutil_weakrand_range_() where it could return the top of the range. Change its return type to ev_int32_t. Add a quick unit test to make sure that the value of evutil_weakrand_range_() is in range.
Nicholas Marriott e86af4b7 2012-04-09T10:46:32 Change evutil_weakrand_() to avoid platform random() This change allows us to avoid perturbing the platform's random(), and to avoid hitting locks on random() in the platform's libc. evutil_weakrand_() is, well, weak, so we choose here an algorithm that favors speed over a number of other possibly desirable properties. We're using a linear congruential generator, and taking our parameters from those shared by the OpenBSD random() implementation, and Glibc's fastest random() implementation. The low bits of a LCG of modulus 2^32 are (notoriously) less random than the higher bits. So to generate a random value in a range, using the % operator is no good; we ought to divide. We add an evutil_weakrand_range_() function to do that. This code also changes the interface of evutil_weakrand_() so that it now manipulates an explicit seed, rather than having the seed in a static variable. This change enables us to use existing locks to achieve thread-safety, rather than having to rely on an additional lock. (Patch by Nicholas Marriott; commit message by Nick Mathewson.)
Ross Lagerwall 9b856fd5 2012-04-07T17:32:00 Simplify test.sh code significantly. Also make it easier to add new tests/backends.
Nick Mathewson d9a55153 2012-04-03T20:30:54 Increment the version to 2.1.1-alpha-dev
Nick Mathewson 6f2337dd 2012-04-03T18:39:30 Merge remote-tracking branch 'origin/patches-2.0'
Nick Mathewson d1a03b2f 2012-04-03T18:31:08 Backport: provide EVENT_LOG_* names, and deprecate _EVENT_LOG_* This is a partial backport of cb9da0bf and a backport of c9635349. Because C doesn't like us to declare identifiers starting with an underscore, Libevent 2.1 has renamed every such identifier. The only change that affects a public API is that the _EVENT_LOG_* macros have been renamed to start with EVENT_LOG instead. The old names are still present, but deprecated. I'm doing this backport because it represents the deprecation of a Libevent 2.0 interface, and folks should have the opportunity to write code that isn't deprecated and works with both 2.0 and 2.1.
Nick Mathewson 3ef4b353 2012-04-03T17:27:07 Merge remote-tracking branch 'origin/patches-2.0'
Nick Mathewson 88b4f0bb 2012-04-03T17:26:25 fix some typos in the 2.1 changelog
Nick Mathewson 3faaad49 2012-04-03T17:26:12 Bump the version to Libevent 2.1.1-alpha
Nick Mathewson f775521c 2012-04-03T17:25:36 Fix the website URL in the readme
Nick Mathewson 2dedff36 2012-04-03T16:50:54 Try to finalize changelog situation for 2.1.1-alpha
Nick Mathewson ba696dce 2012-04-03T16:35:36 Merge remote-tracking branch 'vm/21_fix_nmake_build'
Nick Mathewson 2bb8f2dd 2012-04-03T16:35:26 Add pending names to the README; add more entries to the changelog
Nick Mathewson bcf52585 2012-04-03T16:24:18 Include ws2tcpip.h from util.h to get EAI_* definitions. This is necessary on msvc, to get the EVUTIL_EAI_* values defined properly
Nick Mathewson 2449e0c5 2012-04-03T16:15:49 Fix some compilation warnings with msvc
Nick Mathewson 07cb5704 2012-04-03T16:08:23 Oops; fix a merge conflict that got committed into event2/event-config.h. Now msvc builds work again.
Nick Mathewson 6c95c6c8 2012-04-03T15:43:40 Decrease MAX_REQUESTS in test-fdleak We've got to do this because doing otherwise seems to freak out windows XP.
Nick Mathewson 14eb28a3 2012-04-03T15:41:12 Include util-internal.h earlier in test-dumpevents to fix solaris build See 95e2455cdbf840b for rationale.
Nick Mathewson e78baf4a 2012-04-03T14:54:39 Fix compilation with mm-replacement disabled.
Nick Mathewson 13dad99c 2012-04-03T14:53:00 make event_base_get_running_event build with threads disabled.
Nick Mathewson 55e8dc1b 2012-04-03T14:51:51 Make check-dumpevents work with out-of-tree builds
Nick Mathewson f7b8200c 2012-04-03T12:36:51 Make check-dumpevents.py actually get included in the tarballs
Nick Mathewson 93defa2f 2012-04-03T09:52:40 Merge remote-tracking branch 'origin/patches-2.0'
Sebastian Hahn 4a6fd433 2012-04-03T05:31:20 Configure with gcc older than 2.95 I don't know why people use such ancient gcc versions, but the fix seems straightforward enough to maybe just do it.
Nick Mathewson e780d4e1 2012-04-02T18:14:26 Merge remote-tracking branch 'origin/patches-2.0'
Nick Mathewson 78d67b29 2012-04-02T18:13:53 Missing ) in bufferevent_ratelim.c comment. Found by rransom
Nick Mathewson 4c7ee6b0 2012-04-02T18:12:44 Add missing ) to changelog; spotted by rransom
Nick Mathewson 620f4a7c 2012-04-02T17:31:31 Add a missing name to the readme.
Nick Mathewson e08a88d7 2012-04-01T01:01:50 Merge branch '21_http_test_timing'
Nick Mathewson fc23af45 2012-04-01T00:21:55 Increase duration and tolerance on http/connection_retry test This takes its runtime back up a little again, but not so high as it was before. It appears to address the heisenbug issues of github nmathewson/libevent issue #49. So far.
Nick Mathewson dcab1347 2012-03-30T10:29:08 Merge remote-tracking branch 'origin/patches-2.0'
Nick Mathewson 336dcaea 2012-03-30T10:26:50 Fix a compilation error with MSVC 2005 due to use of mode_t MSVC apparently doesn't have a mode_t defined, though mingw does. Found by Savg He.
Nick Mathewson 09cbc3dc 2012-03-26T23:28:21 Temporarily disable event_queue_reinsert_timeout Apparently, now that we have tests for it in main/common_timeout, we can now see that it sometimes breaks referential integrity somehow. Since I'd like to get 2.1.1-alpha out the door soon, I'm turning it off for now.
Nick Mathewson 55e991b2 2012-03-26T17:35:21 Make libevent_global_shutdown() idempotent Two calls to libevent_global_shutdown on your exit path shouldn't result in a crash.
Nick Mathewson 43d5389c 2012-03-26T14:23:01 Updates for whatsnew-2.1.txt
Nick Mathewson 7f62f4ab 2012-03-26T11:21:51 Merge pull request #48 from rosslagerwall/py-version Require python version
Ross Lagerwall 029a3db3 2012-03-26T20:12:45 Require at least Python 2.4 for check-dumpevents.py.
Nick Mathewson d8a7853e 2012-03-25T18:56:34 Merge remote-tracking branch 'origin/patches-2.0'
Nick Mathewson 98e9119f 2012-03-25T18:56:15 Fix a typo in the bufferevent documentation
Nick Mathewson c24f91ad 2012-03-25T18:55:31 Test more bufferevent_ratelim features
Nick Mathewson c5732fdd 2012-03-25T18:54:40 Add event_base_get_running_event() to get the event* whose cb we are in
Nick Mathewson 5626092c 2012-03-23T19:30:02 More coverage on reinsert_timeout tests
Nick Mathewson 8d08ccee 2012-03-23T19:29:45 Make test-dumpevents build on Linux
Nick Mathewson 8c36acd0 2012-03-23T18:42:56 Fix a nasty bug in event_queue_reinsert_timeout() What was I thinking? The old function could handle heap-to-heap transitions, and transitions within the same common timeout queue, but it completely failed to handle heap/queue transitions, or transitions between timeout queues. Now, alas, it's complicated. I should look hard at the assembly here to see if it's actually better than the alternatives.
Nick Mathewson 7afe48aa 2012-03-23T17:56:23 Add a unit test for event_base_dump_events() This function uses a C program to generate its output, and then uses a Python program to check it for correctness. On systems without Python, we just make sure that the C program doesn't crash. It's likely that we should be requiring some particular python version. This is an alpha, though: I'm sure somebody will tell us which.
Nick Mathewson 0343d8fe 2012-03-23T17:53:08 event_base_dump_events: Report active events tersely, and note internal events
Nick Mathewson 17289683 2012-03-23T17:27:18 Fix compilation of evutil_rand on osx
Nick Mathewson 1d8240c0 2012-03-23T11:24:58 Merge pull request #47 from rosslagerwall/patch-1 Fix typo in whatsnew-2.1.txt
Ross Lagerwall 6aa48015 2012-03-23T12:35:33 Fix typo in whatsnew-2.1.txt
Nick Mathewson 15296d06 2012-03-22T18:24:43 Use libevent_global_shutdown() to clean up in unit tests. This bumps coverage up by a few lines. Every little bit helps.
Nick Mathewson 4fe81e23 2012-03-22T18:11:01 Distribute whatsnew-2.1.txt.
Nick Mathewson f98c1588 2012-03-22T17:33:17 Fix another bug from rebase of libevent_global_shutdown patch This one affected machines without a builtin arc4random
Nick Mathewson 7ae08e50 2012-03-22T17:33:12 Write a first draft of whatsnew-2.1.txt
Nick Mathewson 107272b6 2012-03-22T15:17:19 Tweak changelog for 2.1 even more
Nick Mathewson 7c15a93f 2012-03-22T12:44:44 Add more things to the 2.1 changelog
Nick Mathewson 33b2821c 2012-03-22T14:35:56 Merge remote-tracking branch 'origin/patches-2.0'
Nick Mathewson 25a424fb 2012-03-22T14:35:23 Add an empty changelog section for 2.0.19-stable
Nick Mathewson ee412cff 2012-03-22T14:34:59 Merge remote-tracking branch 'origin/patches-2.0'
Nick Mathewson f0fb2c27 2012-03-22T14:34:01 Bump version to 2.0.18-stable-dev
Nick Mathewson cb528ed4 2012-03-22T14:13:28 Merge remote-tracking branch 'origin/patches-2.0'
Nick Mathewson 75401035 2012-03-22T14:00:54 Bump version to 2.0.18-stable
Nick Mathewson d1a904d0 2012-03-22T13:48:33 Merge remote-tracking branch 'origin/patches-2.0'
Nick Mathewson 1f50f3a3 2012-03-22T13:47:30 Merge remote-tracking branch 'origin/patches-2.0'
Nick Mathewson 90c0a7df 2012-03-22T13:47:01 Add credits to README
Nick Mathewson 77342926 2012-03-22T12:49:08 Changelog for libevent 2.0.18-stable
Nick Mathewson 3e9612cd 2012-03-22T12:17:30 Merge branch 'global_shutdown_rebased_v2'
Mark Ellzey 041ca00c 2011-07-12T12:25:41 Add a new libevent_global_shutdown() to free all globals before exiting. Mark Ellzey added a function libevent_shutdown() which calls a set of private functions: * event_free_globals() * event_free_debug_globals() * event_free_debug_globals_locks() * event_free_evsig_globals() * evsig_free_globals() * evsig_free_globals_locks() * evutil_free_globals() * evutil_free_secure_rng_globals() * evutil_free_secure_rng_globals_lock() Nick tweaked this libevent global shutdown code: - rename the function to emphasize that it's for global resources - write more in the doxygen - make function brace style consistent - add a missing void in a function definition.
Nick Mathewson 24dab0b3 2012-03-19T14:39:06 event-read-fifo: Use EV_PERSIST appropriately
Ross Lagerwall a5b370a2 2012-03-19T19:18:46 Rename event-test.c to event-read-fifo.c. Treat it as an example of reading from a named pipe, not an initial teaching tool.
Ross Lagerwall c0dacd23 2012-03-18T08:19:04 On Unix, remove event.fifo left by sample/event-test.c. This fifo would result in grep hanging when doing a recursive grep through the Libevent sources. event.fifo gets removed on SIGINT or normal exit.
Ross Lagerwall 19bab4fb 2012-03-12T18:45:00 Fix up sample/event-test.c to use newer interfaces and make it actually work.
Nick Mathewson 33e42ef3 2012-03-13T19:14:57 Now that event_assign() special-cases event_self_cbarg(), event_new() can stop
Nick Mathewson 1da0e04a 2012-03-13T19:11:11 Merge remote-tracking branch 'ross/eventarg-v2'
Nick Mathewson 45d6213e 2012-03-13T15:56:35 Merge remote-tracking branch 'origin/patches-2.0' Conflicts: configure.in
Nick Mathewson c41c1a2b 2012-03-13T15:49:49 Merge remote-tracking branch 'sebastian/clang_unknown_warning_options' into patches-2.0
Ross Lagerwall 1338e6cd 2012-03-13T21:42:40 Add a test for using event_self_cbarg() with event_assign().
Ross Lagerwall 09a1906a 2012-03-13T21:41:22 event_self_cbarg() works with event_assign() for consistency with event_new().