On Oct 5, 2005, at 7:04 PM, William A. Rowe, Jr. wrote:


Before I consider backporting for 2.1-dev, I'd very much appreciate
if some of the event mpm ap_process_http_async_connection developers
would confirm that the mechanisms behave the way I expect them to.

IIUC, the event pollset will handle the core timeout, and the
keep_alive_timeout on their own, and the common code to read-between
the request line and headers, headers and body follow the normal course
of processing as in the non-async model.


Yes, that's how things currently work in the event MPM in 2.2 and
the 2.3 trunk.  Strictly speaking, the common code handles the core
timeout, and the MPM's pollset only has to handle the keepalive
timeout.  When we add async write completion, the MPM can apply
the core write timeout itself.

On the async-dev branch, my ap_core_output_filter() rewrite
currently does a hack in order to achieve nonblocking writes:

if (nonblocking) {
    get the socket's timeout (as set by the NET_TIME filter)
    clear the timeout
    do the write
   restore the timeout value
}
else {
    do the blocking write, relying on the timeout set in NET_TIME
}

I'll have to modify the code to figure out for itself what the
timeout should be (rather than looking up a value that the
NET_TIME filter has set in the socket).  But that's no problem;
the resulting code will be cleaner than the current hack.

Brian

Reply via email to