httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Greg Stein <gst...@lyra.org>
Subject Re: [PATCH] buckets take 2
Date Thu, 18 Jan 2001 01:11:47 GMT
On Wed, Jan 17, 2001 at 04:20:37PM -0800, rbb@covalent.net wrote:
> 
> Well, I hate this, but at least it moves us forward.  All this does, is
> remove the change from ap_r* to ap_brigade_*, and it wraps the
> ap_brigade_* functions in ap_r*.  Existing modules will still work, and we
> stop creating tons of little buckets.

1) doesn't deal with network pressure. mod_autoindex will generate the whole
   response in memory before delivering a single byte.

2) doesn't allow mixing of ap_r* and ap_pass_brigade()
   [ can easily happen with utility functions ]

3) users must call standardize() on a brigade before they can use it, but
   the determination for doing so is based on how it was created (which
   could be elsewhere in the code, relative to the consumer of the brigade).
   essentially, the brigade's integrity is easily corrupted


A long while back, you had an idea for brigade functions that would append
into the last bucket if space was available. I think your original idea
would work much better here. A quick recap/notes:

*) ap_brigade_puts() [and brethren] would check if the last bucket is a HEAP
   or POOL bucket, and call ap_bucket_(heap|pool)_puts().

*) standardize no longer needed since a bucket already exists

*) allows mixing ap_brigade_puts() and insertion of other buckets

Using the above mechanism would be good for item (3) above, and could be
good for appending a small brigade (e.g. a single transient bucket) into
another brigade.

Cheers,
-g

-- 
Greg Stein, http://www.lyra.org/

Mime
View raw message