The base config is created in cfg->pool (a child of process->pool.)

If we are supposed to merge into the r->pool, we need a copy.  That copy gets
tagged with the r->pool

If we are then supposed to merge using the sub_req->pool, we need another copy.
That copy is tagged with that sub_req->pool.

If we start caching configs, each cached <Directory /> config needs it's own pool 
(so it can be destroyed when the cache stales.)  That cache->pool is different
than the base cfg->pool, so we must copy.  When we take the cached config into the
request, cache->pool isn't r->pool, so again we copy.

Other than that, we can keep merging without copies.  Otherwise we drop the hashing,
because it is a cpu buster.

Bill

----- Original Message ----- 
From: "Bill Stoddard" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, August 14, 2001 4:21 PM
Subject: Re: [PATCH] I prefer this... Re: [PATCH] for mod_mime seg fault in 2.0.23 :-)


> 
> > -1 (veto) to both suggestions.
> >
> > This is getting obscene.  We've lost all value of tables, since they can't be 
>memcpy'ed,
> > they have to be reconstructed.  This will be much slower than the original array 
>code.
> >
> > Committers, please review dir_create() and dir_merge() patches more carefully.  
>There
> > is a long tradition of configuration bugs due to these assumptions.  The patches 
>that
> > added copy/copy_mappings was an attempt to salvage this.
> >
> > I'll demonstrate a solution, using pool scopes, that adds safety and speed.  Give 
>me a
> day.
> 
> What are pool scopes?
> 
> Bill
> 
> 


Reply via email to