]> git.ipfire.org Git - thirdparty/squid.git/commit
Merging async-call branch changes to HEAD:
authorrousskov <>
Wed, 13 Feb 2008 06:40:02 +0000 (06:40 +0000)
committerrousskov <>
Wed, 13 Feb 2008 06:40:02 +0000 (06:40 +0000)
commit3e5c8cf4222d850a0390ce3e3959cf6fad18ed91
tree3155d8cd86c2fc5e6efcdb1eac490127e74a90c1
parent65517dc846f8d089fa77a0f97a88ae7937b75b31
Merging async-call branch changes to HEAD:

Async-call work replaces event-based asynchronous calls with
stand-alone implementation. The common async call API allows Squid
core do call, debug, and troubleshoot all callback handlers in a
uniform way.

An async "job" API is introduced to manage independent logical threads
or work such as protocol transaction handlers on client, server, and
ICAP sides. These jobs should communicate with each other using async
calls to minimize dependencies and avoid reentrant callback loops.

These changes will eventually improve overall code quality, debugging
quality, and Squid robustness.

The code is still more complex than I want it to be. However, these are
low-level interfaces that most developers will not have to deal with and
the complexity will be significantly reduced if we get rid of old style
function-pointer based callbacks, which is probably desirable for several
reasons. Other simplifications will be found in time as well.

TODO: src/ICAP/AsyncJob needs to be moved to src/. It is not moved yet to
preserve commit logs.
src/AsyncCall.cc
src/AsyncCall.h
src/ICAP/AsyncJob.cc
src/ICAP/AsyncJob.h