httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Brian Pane <bri...@apache.org>
Subject Re: svn commit: r306495 - in /httpd/httpd/trunk: include/ap_mmn.h include/http_core.h modules/http/http_core.c server/core.c server/core_filters.c server/protocol.c
Date Thu, 06 Oct 2005 04:09:21 GMT
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


Mime
View raw message