Refactoring event loop

From: Robert Collins <robertc@dont-contact.us>
Date: Mon, 07 Aug 2006 12:34:33 +1000

I've just checked in a refactoring of the event loop to squid-3.

This is mostly harmless. It will likely have one negative impact though:
the selftest for EventLoop() will fail if the comms module being built
is not updated to the new protocol because the comms code has a
now-inappropriate assert in it.

The change to comm_select is that when there are:
 - no fds
 - squid is not shutting down

comm_select should now return COMM_IDLE rather than fataling. I've
updated comm_poll, but due to time constraints and our current
only-build-one-loop approach I haven't updated epoll/select/kqueue.

I hope to get some hack time next weekend, when I'll transition the
event checking logic in the event loop to be comms-loop independent - I
ran out of time on Sunday, and this is strictly weekend-stuff for me.

When this transition is done, the improved event loop I sketched out a
while back will be in place, allowing for relatively easy testing of
event loop dependent code - such as the http pipeline, or icap etc etc.

Hope this is of use,
Cheers,
Rob

-- 
GPG key available at: <http://www.robertcollins.net/keys.txt>.

Received on Sun Aug 06 2006 - 21:00:32 MDT

This archive was generated by hypermail pre-2.1.9 : Fri Sep 01 2006 - 12:00:03 MDT