select.c


Log

Author Commit Date CI Message
Nick Mathewson 2c2618d8 2010-03-05T13:00:15 more whitespace normalization
Nick Mathewson 17efc1cd 2010-03-04T01:25:51 Update all our copyright notices to say "2010"
Nick Mathewson e5bbd40a 2010-02-18T17:41:15 Clean up formatting: use tabs, not 8-spaces, to indent.
Nick Mathewson 76cd2b70 2009-11-27T16:44:47 Stop passing EVTHREAD_READ and EVTHREAD_WRITE to non-rw locks. Previously, our default lock model kind of assumed that every lock was potentially a read-write lock. This was a poor choice, since read-write locks are far more expensive than regular locks, and so the lock API should only use them when we can actually take advantage of them. Neither our pthreads or win32 lock implementation provided rw locks. Now that we have a way (not currently used!) to indicate that we really want a read-write lock, we shouldn't actually say "lock this for reading" or "lock this for writing" unless we mean it.
Nick Mathewson 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
Nick Mathewson 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
Nick Mathewson 1eadb3e3 2009-10-29T16:35:15 Actually use the logic in select.c designed to make the out_sets threadsafe. svn:r1475
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 18fe4008 2009-09-23T23:51:26 Forward-port: fix android compilation svn:r1435
Nick Mathewson cdaca02c 2009-05-27T15:35:00 Activate fd events in a pseudorandom order on older backends. New backends like poll and kqueue and so on add fds to the queue in the order that they are triggered. But the select backend currently activates low-numbered fds first, whereas the poll and win32 backends currently favor whatever fds have been on for the longest. This is no good for fairness. svn:r1318
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
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
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 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
Niels Provos ca42671a 2008-03-29T01:45:45 make event methods static so that they are not exported; from Andrei Nigmatulin svn:r692
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 ce4ee418 2007-11-26T19:18:49 r16733@catbus: nickm | 2007-11-26 14:18:25 -0500 Add an --enable-gcc-warnings option (lifted from Tor) to the configure script. When provided, and when we are using GCC, we enable a bunch of extra GCC warnings in the compiler. Also, make the code all build happily with these warnings. svn:r553
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 2026b215 2007-11-03T23:53:49 remove last vestiges of RBTREE svn:r470
Niels Provos 5e0ac7f2 2007-07-31T00:25:22 check for sys/select.h svn:r377
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 a32839c8 2006-03-28T04:17:51 some nit-picking from poul-henning kamp svn:r208
Niels Provos 7517ef2a 2006-03-28T04:16:14 some fixes from openbsd via brad svn:r207
Niels Provos 7a0c530b 2005-05-11T04:08:51 performance improvements of select handler by Nick Mathewson; I added better recovery when memory allocation fails; something that needs to be done for the poll improvements, too. svn:r166
Niels Provos bc9b2487 2005-04-04T00:10:17 make it compile on solaris svn:r142
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 a78472da 2004-07-13T07:55:01 fix a bug for persistent events when using select() svn:r108
Niels Provos c3f496c7 2003-10-04T23:27:26 minor corrections; change license to 3-clause BSD license svn:r84
Niels Provos e506eaf7 2003-09-25T03:26:53 constify; some windows stuff by mike davis; fix a poll bug svn:r77
Niels Provos cde7a352 2003-03-08T06:37:56 fix signal usage svn:r45
Niels Provos 01a932fe 2003-03-07T23:19:05 fix signal usage svn:r41
Niels Provos e72dff13 2003-03-01T20:31:28 replace references to __FUNCTION__ with __func__ svn:r40
Niels Provos 3c2916aa 2003-03-01T19:48:05 ifdef config.h svn:r39
Niels Provos b5b585c1 2003-03-01T19:46:27 support disabling of event mechanisms via the environment; error out if no event mechanism is available svn:r38
Niels Provos b3d1c6a8 2003-02-28T22:38:30 support poll(2) and split out the signal handling svn:r37
Niels Provos 9d2401ff 2002-10-07T00:47:34 portability fixes from marius@umich.edu. svn:r35
Niels Provos e0ca1ef2 2002-09-15T18:52:28 signal fixes from ericj@monkey.org via dugsong@monkey.org svn:r32
Niels Provos 5f865858 2002-07-26T14:45:50 sync with openbsd; API change: timeout_ is now evtimer_ svn:r29
Niels Provos 3107493c 2002-05-20T21:51:53 signal fix from dugsong@monkey.org svn:r25
Niels Provos 59137c11 2002-04-10T03:15:19 deal correctly with deleting an event, now that we allow multiple callbacks for signal delivery. svn:r20
Niels Provos d10f85db 2002-04-10T02:10:47 signal support for kqueue; support of EV_PERSIST flag to event_set svn:r18
Niels Provos b855bc55 2002-04-10T00:31:31 initial support for signals (only for select now) based on code from Dug Song <dugsong@monkey.org> svn:r17
Niels Provos aa6567fe 2002-04-09T15:14:06 Initial revision svn:r2