/[wanproxy]/trunk/event
ViewVC logotype

Log of /trunk/event

View Directory Listing Directory Listing


Sticky Revision:

Revision 477 - Directory Listing
Modified Wed Aug 18 20:52:28 2010 UTC (2 weeks, 5 days ago) by juli
Remove whitespace at end-of-line.

Revision 458 - Directory Listing
Modified Mon Aug 9 10:21:23 2010 UTC (4 weeks, 1 day ago) by juli
Do not blow up if we get EOF from a write filter and document what that means.

Revision 441 - Directory Listing
Modified Mon May 31 10:41:00 2010 UTC (3 months, 1 week ago) by juli
o) Add a CallbackQueue drain() method which drains a queue atomically.
o) Use said method for stop() (to prevent infinite loops from badly-written
   code) and to make reloading work properly.

Revision 440 - Directory Listing
Modified Mon May 31 10:39:13 2010 UTC (3 months, 1 week ago) by juli
Add a simple example of reloading.

Revision 439 - Directory Listing
Modified Mon May 31 10:12:18 2010 UTC (3 months, 1 week ago) by juli
Generalize EventCallback into TypedCallback, which takes a typed parameter
specified by the caller-back.

Revision 431 - Directory Listing
Modified Thu Feb 25 09:38:59 2010 UTC (6 months, 1 week ago) by juli
o) Don't require an errno when constructing an Event.

Revision 430 - Directory Listing
Modified Fri Feb 19 08:41:32 2010 UTC (6 months, 2 weeks ago) by juli
o) Add a reload handler mechanism, but it needs a little work.

Revision 428 - Directory Listing
Modified Thu Feb 18 19:21:33 2010 UTC (6 months, 2 weeks ago) by juli
Assert that we are only generating EOS messages for read filters.

Revision 426 - Directory Listing
Modified Thu Feb 18 05:15:55 2010 UTC (6 months, 2 weeks ago) by juli
Add an Event that has both a Buffer and auxillary data.

Revision 415 - Directory Listing
Modified Thu Dec 10 18:06:02 2009 UTC (8 months, 3 weeks ago) by juli
Whitespace between VPATH+= and the content.

Revision 409 - Directory Listing
Modified Thu Dec 10 17:49:25 2009 UTC (8 months, 3 weeks ago) by juli
Switch to GNU Make in the interest of portability.

Revision 407 - Directory Listing
Modified Sun Nov 22 20:24:52 2009 UTC (9 months, 2 weeks ago) by juli
Clean up empty-body expression style.

Revision 383 - Directory Listing
Modified Tue Nov 10 08:22:01 2009 UTC (9 months, 3 weeks ago) by juli
Mark some fields const.

Revision 340 - Directory Listing
Modified Fri Sep 25 23:47:48 2009 UTC (11 months, 1 week ago) by juli
Use kqueue on OpenBSD.

Revision 339 - Directory Listing
Modified Fri Sep 25 23:35:38 2009 UTC (11 months, 1 week ago) by juli
Add <unistd.h> for usleep(3).

Revision 330 - Directory Listing
Modified Thu Sep 17 01:29:11 2009 UTC (11 months, 3 weeks ago) by juli
Add a note about the gratuitous polling we do, especially since we're not
edge-triggered.

Revision 289 - Directory Listing
Modified Mon Sep 7 08:28:25 2009 UTC (12 months ago) by juli
o) Remove an old XXX about  a decision long made and enjoyed.
o) Explain a bit about why Events are as they are.

Revision 287 - Directory Listing
Modified Mon Sep 7 06:13:02 2009 UTC (12 months ago) by juli
o) Add Solaris port(3C)-based polling that uses /dev/poll on the backend.

Revision 285 - Directory Listing
Modified Sun Sep 6 07:14:36 2009 UTC (12 months ago) by juli
o) Handle modification of events not just add/delete.
o) Handle EPOLLIN and EPOLLOUT at the same time.

Revision 284 - Directory Listing
Modified Sun Sep 6 07:04:13 2009 UTC (12 months ago) by juli
Add barely-tested epoll support and turn it on on Linux.

Revision 281 - Directory Listing
Modified Sun Sep 6 00:26:43 2009 UTC (12 months ago) by juli
Use select, not poll, on Interix.

Revision 250 - Directory Listing
Modified Thu Aug 20 07:05:25 2009 UTC (12 months, 2 weeks ago) by juli
Include <errno.h> for extern int errno on Slowlaris.

Revision 225 - Directory Listing
Modified Sat Aug 15 00:46:35 2009 UTC (12 months, 3 weeks ago) by juli
o) Do not allow passing a Buffer pointer to an Event().  Prevents accidentally
   passing the Buffer * via data_ instead of buffer_.

Revision 189 - Directory Listing
Modified Thu Jul 30 09:52:08 2009 UTC (13 months, 1 week ago) by juli
Stop using FreeBSD-like PROG_CXX variable and call it PROGRAM instead.

Revision 180 - Directory Listing
Modified Sat Jun 27 19:35:46 2009 UTC (14 months, 1 week ago) by juli
Unify duplicated code from the various poll implementations into poll.h.

Revision 179 - Directory Listing
Modified Sat Jun 27 09:21:33 2009 UTC (14 months, 1 week ago) by juli
Move program.mk into common/ to make tab-completion of programs/ less ugly and
to hide implementation details from the top-level file list.

Revision 129 - Directory Listing
Modified Sat Apr 18 04:05:51 2009 UTC (16 months, 2 weeks ago) by juli
o) Set OSNAME in program.mk rather than in each library that needs it.
o) If running OpenBSD, disable -Werror, since OpenBSD has an ancient compiler
   that bogusly warns about private destructors without any defined friends.

Revision 128 - Directory Listing
Modified Sat Apr 18 01:23:26 2009 UTC (16 months, 2 weeks ago) by juli
Make everything build on OpenSolaris.
o) Include <errno.h> in cases where the extern definition of errno may be
   needed, in addition to <sys/errno.h>.
o) Remove serial interface support code, it has not been needed and will not
   likely be needed in the WANProxy repository.
o) On SunOS, add -lnsl and -lsocket when using IO routines as networking
   support requires them.
o) On SunOS, like on Linux, do not populate a 'len' field of a socket address.
o) Mark a bad assertion with a comment.
o) Don't use gethostbyname2(3) on SunOS, sigh.  Would be good to write a
   simple non-blocking resolver anyway...
o) Attempt to use the SunOS method of endianness-determination at compile
   time.  Hopefully I got that right.

Revision 127 - Directory Listing
Modified Wed Apr 15 08:48:31 2009 UTC (16 months, 3 weeks ago) by juli
Add missing includes of unistd.h for close and usleep.

Revision 125 - Directory Listing
Modified Tue Apr 7 07:58:30 2009 UTC (17 months ago) by juli
Move the Timer class to the common module from the event module.  It is a more
logical fit there with other general facilities like logging and buffers than
with the event system, which it has no direct relation to.  This also means that
in the future the test code can do timing tests (since test support is in
common as well) and that tack now builds no gratuitous code.

Revision 121 - Directory Listing
Modified Tue Mar 31 06:09:53 2009 UTC (17 months, 1 week ago) by juli
Change the stop-handling API to a general register_interest API that can
register interest in all sorts of one-shot events.  For now, just support the
EventInterestStop interest type.  Others that are likely include
EventInterestIdle for when there's no events pending, EventInterestLowMemory for
when memory is becoming scarce, etc.

Revision 118 - Directory Listing
Modified Tue Mar 31 05:28:24 2009 UTC (17 months, 1 week ago) by juli
Make poll and select EventPoll implementations friendly to EINTR like kqueue.

Revision 117 - Directory Listing
Modified Tue Mar 31 05:26:07 2009 UTC (17 months, 1 week ago) by juli
o) When deleting a CallbackQueue, make sure it's empty.
o) Make CallbackQueue::empty() const.
o) Add a SIGINT handler and a mechanism to stop and register for callback on
   stop of the Event System.
o) The TimeoutQueue::perform function should always drain and remove its
   CallbackQueue if it executes one at all.  No need for all the back and forth
   if there are multiple timeouts that expire at the same time.
o) Make it okay for kqueue to return EINTR.
o) Only claim that a TimeoutQueue is not empty if at least one of its
   CallbackQueues is empty.  The comment that used to be here was right --
   since items can be removed from those queues by a cancel, it's important to
   actually check.

Revision 109 - Directory Listing
Modified Sun Mar 22 10:31:37 2009 UTC (17 months, 2 weeks ago) by juli
Add a hackish EventPoll implementation using select(2).  I hate select(2).

Revision 100 - Directory Listing
Modified Fri Mar 20 10:54:09 2009 UTC (17 months, 2 weeks ago) by juli
Update TODO and *really* fix clock_gettime detection.

Revision 98 - Directory Listing
Modified Fri Mar 20 10:46:04 2009 UTC (17 months, 2 weeks ago) by juli
Use the correct scheme to detect presence of clock_gettime(3).

XXX Does not try to detect available monotonic clock feature.

Revision 97 - Directory Listing
Modified Fri Mar 20 10:45:27 2009 UTC (17 months, 2 weeks ago) by juli
On Linux use librt for clock_gettime.

Revision 90 - Directory Listing
Modified Thu Mar 19 08:47:29 2009 UTC (17 months, 2 weeks ago) by juli
Explicitly construct timeout_queue_.

Revision 64 - Directory Listing
Modified Sun Mar 15 02:51:49 2009 UTC (17 months, 3 weeks ago) by juli
o) Don't use bsd.prog.mk where bsd.subdir.mk is desired.
o) Make TCPClient just give the user a Socket.  There's no reason they
   would want to have to go through some silly wrapper class.
o) Get rid of a warning in file.cc by returning NULL if HALT()<< for
   some incomprehensible reason doesn't return.  I hate GCC.
o) Make TCPClient::connect ASSERT that it can get a Socket rather than
   having it return NULL, since nobody checks its return value anyway.
o) Make program.mk not rely on bsd.prog.mk (just bsd.obj.mk.)
o) Crank up warnings a bit.

Revision 62 - Directory Listing
Modified Sun Mar 15 02:24:37 2009 UTC (17 months, 3 weeks ago) by juli
Default to kqueue(2) on FreeBSD and Darwin, poll(2) elsewhere.

Revision 55 - Directory Listing
Modified Thu Mar 12 04:09:25 2009 UTC (17 months, 3 weeks ago) by juli
o) Make the Event callback system no longer require a void * user data argument.
   Instead, provide two callback classes, one with a user-specified argument, one
   with none and one with an argument type specified by a template parameter.
   For now the only consumer of user-specified arguments still uses a void *.

Revision 47 - Directory Listing
Modified Thu Mar 5 20:14:26 2009 UTC (18 months ago) by juli
Use gettimeofday if clock_gettime / CLOCK_MONOTONIC is not available.

Revision 43 - Directory Listing
Modified Thu Mar 5 05:43:59 2009 UTC (18 months ago) by juli
o) In polling code, if idle sleep using usleep/nanosleep if a wait is
   okay, rather than spinning.
o) Whitespace cleanup.
o) Add an example program for timeout usage.
o) Fix timeout interval calculation.
o) Fix NanoTime conditionals.

Revision 42 - Directory Listing
Modified Thu Mar 5 04:15:05 2009 UTC (18 months ago) by juli
o) Use millisecond waits and timeouts.
o) Internally use a monotonic nanosecond clock for TimeoutQueues.

Revision 30 - Directory Listing
Modified Tue Mar 3 05:31:57 2009 UTC (18 months ago) by juli
Add a microsecond-sampling mechanism and use it to instrument tack.

Revision 1 - Directory Listing
Added Mon Feb 16 08:26:47 2009 UTC (18 months, 2 weeks ago) by juli
Initial import of public WANProxy codebase.

Based on r238 in the Marvelous Proof repository.

  ViewVC Help
Powered by ViewVC 1.2-dev