httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Graham Leggett" <minf...@sharp.fm>
Subject Re: svn commit: r467655 - in /httpd/httpd/trunk: CHANGES docs/manual/mod/mod_cache.xml modules/cache/mod_cache.c modules/cache/mod_cache.h
Date Thu, 26 Oct 2006 09:02:40 GMT
On Thu, October 26, 2006 10:50 am, Joe Orton wrote:

> I'm not sure how that is relevant.  The core output filter writes to the
> socket directly - it can use non-blocking writes or whatever it likes to
> do that.  The cache must write to the output filter chain.  How do you
> propose to do non-blocking writes up the output filter chain?

The cache by design sits as close to the output filter as humanly
possible. This means that cache can pass file buckets to the output
filter, and it does. If ap_core_output_filter() is asked to write a file
bucket to the network, and this would block, it instead sets aside the
file bucket in a temporary brigade for sending later, and returns
immediately.

If this behaviour cannot be relied apon, in other words, if it is found
that there are cases where the ap_core_output_filter() does block despite
being handed file buckets, then the solution is to expose a function that,
given a request_rec, will tell you whether the socket will block or not.

I have a simpler solution for the bucket split in mod_cache that I am
trying out as well, that will give us more control over the simultaneous
write-to-file and write-to-network problem.

Regards,
Graham
--



Mime
View raw message