Return-Path: Delivered-To: apmail-httpd-dev-archive@httpd.apache.org Received: (qmail 69366 invoked by uid 500); 21 Dec 2002 05:21:15 -0000 Mailing-List: contact dev-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@httpd.apache.org list-help: list-unsubscribe: list-post: Delivered-To: mailing list dev@httpd.apache.org Received: (qmail 69351 invoked from network); 21 Dec 2002 05:21:15 -0000 Date: Fri, 20 Dec 2002 21:37:28 -0800 (PST) From: X-X-Sender: To: Brian Pane cc: , , APR Development List Subject: Re: [PATCH] Update to Brian's patch to allocate brigades out of the bucket allocator In-Reply-To: <1040437983.2506.12.camel@desktop> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N 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