apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <...@apache.org>
Subject Re: [PATCH] Update to Brian's patch to allocate brigades out of the bucket allocator
Date Sat, 21 Dec 2002 05:37:28 GMT
On 20 Dec 2002, Brian Pane wrote:

> On Fri, 2002-12-20 at 13:50, rbb@apache.org wrote:
>
> > > Basically, if you received a brigade from a higher filter, you can only
> > > assume that it will survive a single trip down the filter stack.
>
> Right.  And you also can't assume that the context that passed
> the brigade down the filter stack still exists by the time the
> brigade reaches the last filter.  It's a safe assumption in
> httpd-2.0, where the brigade is passed as a synchronous function
> call, but it's not valid for apps in general (potentially including
> future Apache versions) where the brigade may be queued up for
> asynchronous processing by an I/O completion thread.

Actually, it's not even a safe assumption in httpd-2.0.  You have data
from requests that originally lived in brigades allocated out of the
request pool moved to brigades allocated out of the connection pool
because the request pool is going away.  But that just proves the point,
the data must be moved from one brigade to another to change it's
lifetime.  That is part of the design of buckets and brigades.  It is why
the concat and split operations were written for maximum performance.

We are talking about a couple of pointer assignments for the concatenation
and a malloc and some pointer assignments for the split.

The change to stop allocating the brigade out of a pool is a mistake and I
am asking for it to be reverted, or for a clear description of the problem
that it is solving.  I have asked for this description three times now,
and I still don't understand what exactly you are trying to achieve and
why it can't be achieved with the old code.

Ryan


Mime
View raw message