On 12/27/2008 04:07 PM, André Malo wrote:
> * Ruediger Pluem wrote:
> 
>> On 12/26/2008 10:41 PM, [email protected] wrote:
>>> URL: http://svn.apache.org/viewvc?rev=729538&view=rev
>> Hm. Why this rather complex approach with the request_status hook?
>> Why not doing the subrequest here or even better just inserting the file
>> buckets into the brigade right here and be done?
> 
> The whole point of the sendfile stuff is to free the backend socket as early 
> as possible and leave the rest to the apache. So I'm going out of the proxy 
> loop and handle everything in the request status hook, which runs after the 
> cleanup.

For freeing the backend socket it is IMHO possible to call
ap_proxy_release_connection first and do the subrequest run afterwards in
scgi_handler. This avoids the need for using the request_status hook which
makes the code IMHO more complex then needed.

> 
> Also I don't want to duplicate the file delivery logic from core (including 
> sendfile, mmap etc), so putting file buckets myself into the stream sounds 
> not like the way to go.

Hm, there isn't that much basic logic to duplicate, basicly

            e = apr_brigade_insert_file(bb, fd, 0, r->finfo.size, r->pool);

#if APR_HAS_MMAP
            if (d->enable_mmap == ENABLE_MMAP_OFF) {
                (void)apr_bucket_file_enable_mmap(e, 0);
            }
#endif

but of course the default handler does more and that might be wanted, so running
the subrequest makes sense in this case.


Regards

Rüdiger

Reply via email to