httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Justin Erenkrantz <>
Subject Re: How to achieve zero-copy when reading request headers?
Date Mon, 01 Jul 2002 04:30:27 GMT
On Sun, Jun 30, 2002 at 09:14:20PM -0700, Brian Pane wrote:
> The brigade can't be in a filter context, because then it wouldn't be
> accessible from ap_rgetline_core().  The request_rec is the only place
> where we could easily put this brigade.  We just need to name it
> something like "temp_working_brigade" and document the fact that any
> function that puts things in that brigade must clear them out before
> it exits.

This brigade can't be used by anything other than ap_rgetline_core().
I think allowing it to be used by *anything else* is going to cause
problems later on.  I just finished cleaning up most of the invalid
references to req_cfg->bb and now you want to add it back.
Documenting it as temp_working_brigade is just going to declare
open season on misuse.


> The pool cleanup registration and cancel operations aren't particularly
> inefficient (though I think there's some room for optimization).  The
> problem is the large number of calls to these operations per request,
> due to the multiple brigade creations/deletions per header line.

It should only be one brigade per-line, right?

How about adding a variant of ap_rgetline_*() that takes in a
temporary brigade and ap_get_mime_headers() can create one brigade to
be used for all headers.

I'm just really against adding this to the request_rec as I saw how
bad stashing it in request_rec (or req_cfg) ended up being.  -- justin

View raw message