Branch :
| Author | Commit | Date | CI | Message |
|---|---|---|---|---|
| 74871cac | 2009-11-09 19:37:27 | Change event_base.activequeues to "array of eventlist". Previously, event_base.activequeues was of type "array of pointers to eventlist." This was pointless: none of the eventlists were allowed to be NULL. Worse, it was inefficient: - It made looking up an active event queue take two pointer deferences instead of one, thus risking extra cache misses. - It used more RAM than it needed to, because of the extra pointer and the malloc overhead. Also, this patch fixes a bug where we were saying calloc(N,N*sizeof(X)) instead of calloc(N,sizeof(X)) when allocating activequeues. That part, I'll backport. Also, we warn and return -1 on failure to allocate activequeues, rather than calling event_err. svn:r1525 | ||
| ab96b5f3 | 2009-11-09 18:30:33 | Add an option to disable the timeval cache. svn:r1518 | ||
| 693c24ef | 2009-11-09 17: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 | ||
| a2a7d1d1 | 2009-10-27 05:16:32 | Do not call the locking variant of event_add or event_active in some cases when we know we have the lock. svn:r1471 | ||
| b06b2649 | 2009-07-26 01:29:39 | Make "deferred callback queue" independent of event_base. This way, we can more easily have an IOCP bufferevent implementation that does not need an event_base at all. Woot. svn:r1381 | ||
| 5d71b25b | 2009-07-17 18:38:38 | Remove all trailing whitespace from end-of-line. svn:r1350 | ||
| 6b4b77a2 | 2009-07-14 16:54:48 | Make event_del(E) block while E is running in another thread. This gives you the property that once you have called event_del(E), you know that E is no longer running or pending or active at all, and so it is safe to delete the resource used by E's callback. svn:r1341 | ||
| b4886ec8 | 2009-05-15 18:44:44 | Trim 22 bytes from struct event on 32 bit platforms, more on 64-bit platforms. svn:r1292 | ||
| fe47003d | 2009-05-05 16:52:37 | Make unit tests for bufferevent_async compile and _almost_ work. Either I need to make the callbacks get deferred in a base with no events (doable), or I need to make it okay to call launch_read from inside the callback for read (tricky). svn:r1277 | ||
| b69d03b5 | 2009-05-05 14:18:14 | Add a constructor for bufferevent_async. svn:r1274 | ||
| 838d0a81 | 2009-04-17 06:55:08 | Document many internal functions and pieces of code. svn:r1181 | ||
| 4868f4d2 | 2009-04-10 14:22:33 | Initial support for a lightweight 'deferred callbacks'. A 'deferred callback' is just a function that we've queued in the event base. This ability is needed for some mt stuff, and for complex callback chains. For internal use only. svn:r1150 | ||
| ec35eb55 | 2009-02-12 22:19:54 | Make threading functions global, like the mm_ functions. Use the libevent_pthread.la library in regress_pthread. svn:r1121 | ||
| b85b710c | 2009-01-27 22: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-27 22:30:46 | Replace all use of config.h with event-config.h. svn:r1064 | ||
| 56ea4687 | 2009-01-22 02:33:38 | Change the semantics of timeouts in conjunction with EV_PERSIST; timeouts in that case will now repeat until deleted. svn:r1032 | ||
| a5901991 | 2009-01-19 20:37:24 | Use eventfd for main-thread notification where available (i.e., linux). svn:r1023 | ||
| 554e1493 | 2009-01-14 20:52:32 | Move per-fd info from eventops into evmap. Not done for win32.c yet. svn:r1008 | ||
| 169321c9 | 2009-01-13 20:26:37 | Rename four internal headers to follow the -internal.h convention. svn:r1000 | ||
| 55bcd7d2 | 2009-01-09 13:42:21 | On win32, use a hashtable to map sockets to events rather than using an array. svn:r988 | ||
| 30cba6d0 | 2008-12-25 09:22:13 | we cannot realloc memory used by TAILQ; instead malloc each slot individually svn:r977 | ||
| d776f846 | 2008-12-23 22: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-23 16: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-11 15:49:04 | support multiple events listening on the same signal; make signals regular events that go on the same event queue svn:r901 | ||
| 05965921 | 2008-05-31 14:37:31 | Add new functions to access backends by their features and to query the features of a backend. svn:r842 | ||
| 3f56e364 | 2008-05-08 05:56:20 | event_base_new_with_config() and related methods svn:r789 | ||
| 8c750eaf | 2008-05-03 21:37:33 | separate signal events from io events svn:r760 | ||
| 45e6fb0d | 2008-05-03 18:23:44 | cache clock_gettime/gettimeofday values in base svn:r758 | ||
| c182baca | 2008-03-10 03:17:20 | switch thread support so that locks get allocated as they are needed. svn:r690 | ||
| 558de9b3 | 2008-03-02 21:18:33 | Provide OpenSSL style support for multiple threads accessing the same event_base svn:r684 | ||
| 03589ccb | 2007-12-24 22:49:30 | rollback r594: restructuring to make event activation independent. changes are going to wait for api design svn:r612 | ||
| 7aa845b7 | 2007-12-16 04:10:30 | restructure the code to make event activation independent of regular event logic svn:r594 | ||
| fbe24f43 | 2007-12-09 05:07:20 | remove obsoleted recalc code svn:r581 | ||
| 2823cb05 | 2007-11-25 17:15:28 | r14944@tombo: nickm | 2007-11-25 12:12:28 -0500 Make kqueue pass more unit tests. svn:r544 | ||
| 7eb250e9 | 2007-11-25 17:14:19 | r14939@tombo: nickm | 2007-11-25 11:59:26 -0500 New function event_set_mem_functions to replace internal calls to malloc, free, etc with a user-supplied functions. svn:r541 | ||
| 88897852 | 2007-11-25 06:57:59 | provide event_reinit() to reinitialized an event_base after fork - necessary for epoll/kqueue svn:r539 | ||
| 1c23e219 | 2007-11-17 22:21:42 | r14931@tombo: nickm | 2007-11-17 17:21:09 -0500 Patch from Scott Lamb: Implement event_{base_}loopbreak. Includes documentation and tests. From sf.net Feature Request 1826546. svn:r535 | ||
| f74e7258 | 2007-11-07 06:01:57 | r16501@catbus: nickm | 2007-11-07 01:00:31 -0500 This is one of those patches which will either make matters far simpler after the bugs shake out, or will get reverted pretty quick once we realize that it is a stupid idea. We now post-process the config.h file into a new event-config.h file, whose macros are prefixed with _EVENT_ and which is thus safe for headers to include. Using this, we can define replacement timeval manipulation functions in evutil.h, and use them uniformly through our code. We can also detect which headers are needful in event.h, and include them as required. This is also the perfect time to remove the long-deprecated acconfig.h file, so that autoheader no longer warns. Should resolve the following issues: [ 1826530 ] Header files should have access to autoconf output. [ 1826545 ] acconfig.h is deprecated. [ 1826564 ] On some platforms, event.h can't be included alone. svn:r492 | ||
| 30ae40cc | 2007-11-03 18:04:53 | switch timeouts to a min heap; from Maxim Yegorushkin svn:r467 | ||
| 41b7cbc3 | 2007-03-10 06:37:53 | more the signal base into the event base; this removes global state and makes signals work better with threading; from Wouter Wijngaards small fixes for kqueue and style by me svn:r351 | ||
| 905ee67d | 2005-02-22 15:47:53 | provide maintainer mode in automake; put event_gotsig back into global state; return proper error code svn:r131 | ||
| 8773c4c9 | 2004-11-25 09:50:18 | make libevent thread-safe; first cut svn:r122 |