From: wessels <> Date: Wed, 11 Feb 1998 08:07:23 +0000 (+0000) Subject: update X-Git-Tag: SQUID_3_0_PRE1~4116 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8450e5e25bf73bb118754e3e6272d76a93b4131d;p=thirdparty%2Fsquid.git update --- diff --git a/doc/Programming-Guide/prog-guide.sgml b/doc/Programming-Guide/prog-guide.sgml index e1a2be4101..52f30b557f 100644 --- a/doc/Programming-Guide/prog-guide.sgml +++ b/doc/Programming-Guide/prog-guide.sgml @@ -668,20 +668,69 @@ another request from the client, or closes the client connection.

At the core of Squid is the Comm Handlers +

+The + commSetSelect(fd, COMM_SELECT_READ, clientReadRequest, conn, 0); + +In this example, + clientReadRequest(fd, conn); +

-For every open file descriptor, there are N types of handler functions. - -Read -Write -Timeout -Lifetime -Close - +The I/O handlers are reset every time they are called. In other words, +a handler function must re-register itself with + commSetSelect(fd, COMM_SELECT_READ, NULL, NULL, 0); + + +

+These I/O handlers (and others) and their associated callback data +pointers are saved in the + struct _fde { + ... + PF *read_handler; + void *read_data; + PF *write_handler; + void *write_data; + close_handler *close_handler; + DEFER *defer_check; + void *defer_data; + }; + + +In some situations we want to defer reading from a filedescriptor, +even though it has data for us to read. This may be the case +when data arrives from the server-side faster than it can +be written to the client-side. +Before adding a filedescriptor to the ``read set'' for select, +we call These handlers are stored in the