epoll.c


Log

Author Commit Date CI Message
Nick Mathewson 2e36dbe1 2009-10-26T20:00:43 Use EVUTIL_ASSERT() consistently instead of assert. svn:r1464
Nick Mathewson 6b22e74a 2009-10-21T03:54:00 Add locking to event_base_loop. This is harder than it sounds, since we need to make sure to release the lock around the key call to the kernel (e.g., select, epoll_wait, kevent), AND we need to make sure that none of the fields that are used in that call are touched by anything that might be running concurrently in another thread. I managed to do this pretty well for everything but poll(). With poll, I needed to introduce a copy of the event_set structure. This patch also fixes a bug in win32.c where we called realloc() instead of mm_realloc(). svn:r1450
Nick Mathewson e3fd294a 2009-10-16T13:19:57 Spelling fixes in comments and strings. svn:r1445
Nick Mathewson 2622e5ac 2009-09-16T17:17:57 Fix the assert I added to epoll.c: spotted by Dmitry Novikov svn:r1432
Nick Mathewson 85255a63 2009-09-11T18:47:35 Make epoll use less RAM. We do this by not allocating the maximum epoll_event array for the epoll backend at startup. Instead, we start out accepting 32 events at a time, and double the array's size when it seems that the OS is generating events faster than we're requesting them. This saves up to 374K per epoll-based event_base. Resolves bug 2839240. svn:r1428
Nick Mathewson 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
Nick Mathewson 8889a770 2009-01-27T22:30:46 Replace all use of config.h with event-config.h. svn:r1064
Nick Mathewson 554e1493 2009-01-14T20:52:32 Move per-fd info from eventops into evmap. Not done for win32.c yet. svn:r1008
Nick Mathewson 169321c9 2009-01-13T20:26:37 Rename four internal headers to follow the -internal.h convention. svn:r1000
Niels Provos 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
Niels Provos 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
Niels Provos 808f00e1 2008-12-13T06:11:12 constify structs; from Andrei Nigmatulin svn:r959
Nick Mathewson 05965921 2008-05-31T14:37:31 Add new functions to access backends by their features and to query the features of a backend. svn:r842
Nick Mathewson 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
Niels Provos 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
Nick Mathewson 49868b61 2008-04-25T01:18:08 r15316@tombo: nickm | 2008-04-24 20:58:36 -0400 Rename internal memory management functions from event_malloc() etc to mm_malloc() etc. svn:r725
Nick Mathewson 3f3a1675 2008-04-17T19:17:50 r15219@tombo: nickm | 2008-04-17 15:12:17 -0400 Use new includes in epoll.c svn:r716
Nick Mathewson f9f4d4fe 2008-04-11T20:02:50 r19309@catbus: nickm | 2008-04-11 16:02:07 -0400 Fix for epoll-on-linux bug (#1908866) where timeout values over (LONG_MAX-999)/HZ) (35 for me, or maybe 6 hours 50 min for some people, or maybe 3 hours 25 minutes for a special few) get treated as "wait forever". This actually deserves to be fixed in the kernel, but even if it is we will need to support Linux versions with this bug. svn:r709
Nick Mathewson 44ceb945 2008-04-10T19:34:50 r19305@catbus: nickm | 2008-04-10 15:34:10 -0400 Fix bug 1938754: do not warn when epoll_create() fails with ENOSYS. svn:r706
Niels Provos ca42671a 2008-03-29T01:45:45 make event methods static so that they are not exported; from Andrei Nigmatulin svn:r692
Nick Mathewson d80c1c36 2007-12-16T19:34:09 r17185@catbus: nickm | 2007-12-16 14:33:40 -0500 Fix compilation with --enable-gcc-warnings enabled. svn:r599
Niels Provos fbe24f43 2007-12-09T05:07:20 remove obsoleted recalc code svn:r581
Niels Provos 5f3e3159 2007-11-27T01:39:10 move EV_PERSIST handling out of the event backends svn:r555
Nick Mathewson 7eb250e9 2007-11-25T17: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
Niels Provos 88897852 2007-11-25T06:57:59 provide event_reinit() to reinitialized an event_base after fork - necessary for epoll/kqueue svn:r539
Niels Provos bbed0954 2007-11-11T03:05:03 revert r505; it introduced errors in epoll svn:r508
Nick Mathewson 9f0f3d6d 2007-11-10T05:18:11 r16584@catbus: nickm | 2007-11-10 00:00:59 -0500 Patch from Christopher Lane: reduce branch count in epoll_dispatch.c and generally improve clarity. svn:r505
Nick Mathewson 3c1bbca6 2007-11-07T02:30:17 r14744@tombo: nickm | 2007-11-06 21:30:11 -0500 Fix coding error: patch from Charles Kerr. svn:r483
Nick Mathewson d257a4c0 2007-11-06T20:57:32 r16454@catbus: nickm | 2007-11-06 09:59:45 -0500 Small code cleanups in epoll_dispatch(): remove a needless variable and some redundant conditionals. svn:r478
Niels Provos 2026b215 2007-11-03T23:53:49 remove last vestiges of RBTREE svn:r470
Niels Provos 3ad6b47e 2007-07-30T22:41:00 make clock_monotonic work; do not use default timeout; from Scott Lamb, plus some fixes from me. svn:r371
Niels Provos 41b7cbc3 2007-03-10T06: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
Niels Provos b5d2f9a2 2007-03-01T06:25:18 rolling back r339: evconfig.h does not work svn:r341
Niels Provos 8d94bd03 2007-02-28T04:29:18 signal fixes from scott lamb svn:r340
Niels Provos 127c260b 2007-02-28T04:02:29 make evconfig.h available as installed header file; not really ideal but good enough for me; from Nick Mathewson svn:r339
Niels Provos 2e8051f5 2006-03-28T04:40:54 introduce a way to free the base from Nick Mathewson <nickm@freehaven.net> svn:r210
Niels Provos 65644dfb 2005-11-12T19:04:17 solaris kernel changes are not backwards compatible - how retarded. problem pointed out by: Geoffrey Giesemann svn:r185
Niels Provos cdcfae7f 2005-05-10T08:14:39 call epoll_ctl after changing our state table; in case that epoll_ctl fails we need to make sure that the table is consistent. from William Ahern svn:r162
Niels Provos 1919a4ae 2005-03-31T19:53:06 suppress valgrind warnings from knew -a- pimb.org svn:r138
Niels Provos fbdaf3ab 2005-03-29T07:03:10 debugging callbacks from Nick Mathewson <nickm@freehaven.net> svn:r136
Niels Provos 3ba224db 2005-01-03T18:58:40 fixes for threaded operations from Andrew Danforth svn:r129
Niels Provos 8773c4c9 2004-11-25T09:50:18 make libevent thread-safe; first cut svn:r122
Niels Provos 96a25ae6 2004-09-19T22:38:34 when converting usec to msec round up; so that libevent does not spin until the time conversion has caught up; from Aaron Hopkins <aaron at die.net> svn:r121
Niels Provos 6df2ede5 2004-08-10T18:29:37 close file descriptors on exec(); suggested by aaron at die.net svn:r119
Niels Provos e1cd86d7 2003-10-25T21:58:33 fixes to handle error cases by Anatoly Vorobey at pobox.com svn:r90
Niels Provos c3f496c7 2003-10-04T23:27:26 minor corrections; change license to 3-clause BSD license svn:r84
Niels Provos cde427c1 2003-06-24T14:45:21 found a bug where specifying both read|write for a single event let to a crash; found by Bruno Achauer svn:r73
Niels Provos b0b72eb0 2003-04-09T18:12:11 use maximum number of fds for epoll_create; from Davide Libenzi svn:r63
Niels Provos 1ed00256 2003-03-10T05:13:02 fix type svn:r58
Niels Provos eb646205 2003-03-09T23:29:04 style svn:r54
Niels Provos 28d248e0 2003-03-08T16:50:27 copyright svn:r52
Niels Provos cde7a352 2003-03-08T06:37:56 fix signal usage svn:r45
Niels Provos 3e41f17a 2003-03-07T23:20:36 support for Linux eventpoll mechanism svn:r42