On Monday 26 November 2001 09:46 am, Brian Pane wrote: > Ryan Bloom wrote: > >On Monday 26 November 2001 09:39 am, Brian Pane wrote: > >>Ryan Bloom wrote: > >>>On Monday 26 November 2001 09:28 am, Brian Pane wrote: > >> > >>[...] > >> > >>>>* If we end up in the concatenation again during the foreach loop > >>>> through the brigade, add the small buckets to the end of the > >>>> previously allocated heap bucket. If the heap bucket size is > >>>> about to exceed 8KB, stop. > >>> > >>>This should be done by moving the first bucket into a separate brigade > >>>and using the brigade_write functions again. > >> > >>Thanks for the pointer; using apr_brigade_write for this will make the > >>code a lot cleaner. I'll implement this later today if nobody beats > >>me to it. > > > >That is what is being done now. > > But in the current implemention, we end up allocating new space > each time the buckets are compacted, because we start with an > empty brigade, right? So even if the first bucket in the list > to be compacted happens to have been created by a previous > apr_brigade_write (because we end up compacting twice on the > same request, due to a long stream of small buckets produced by > a CGI or mod_include), we can't take advantage of the extra space > within that bucket. Or am I missing something?
You've got it right, but I want to be sure that you know we are currently using those functions. We just need to split the brigade correctly so that we have a brigade that ends with the previously allocated bucket. Ryan ______________________________________________________________ Ryan Bloom [EMAIL PROTECTED] Covalent Technologies [EMAIL PROTECTED] --------------------------------------------------------------