> From: Brian Pane [mailto:[EMAIL PROTECTED]] > > On Sun, 2002-06-30 at 20:57, Justin Erenkrantz wrote: > > On Fri, Jun 28, 2002 at 07:01:34PM -0700, Ryan Bloom wrote: > > > Have you looked at which of these are causing the most performance > > > problems? It seems to me that the easiest thing to do, would be to > use > > > a persistent brigade, which removes two steps from this. > > > > I'd really prefer that we decouple this persistent brigade from the > > request_rec. We used to have it coupled (req_cfg->bb) and it made > > the code too confusing as other places started to rely on this > > brigade. So, I'd like to not go back down that road and figure out > > a better scope for such a persistent brigade (a filter context seems > > about right for the scope). > > 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.
First, please don't put it in the request_rec, it should be placed inside of core_request_config. In fact, if you look at that structure, it already has a brigade specifically for this function. Second, please don't rename that brigade. If people can't read the docs to determine that they aren't supposed to use that brigade, then let them shoot themselves in the foot. In order to find that brigade, they have to read through http_core.h, and they have to define CORE_PRIVATE in their module. Just put a note in the docs that specifically state that 99.9% of module authors shouldn't use that brigade, and that if they do then most likely their filter won't work in all situations. Or, and this is probably better, remove the damned CORE_PRIVATE from our header files. Move those definitions into server/*.h, and stop installing those definitions on user's machines. That will make it FAR more obvious that those structures are private to the core and shouldn't be used by modules. Ryan
