apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Greg Stein <gst...@lyra.org>
Subject Re: apr_brigade_write() [was Re: cvs commit: apr-util/buckets apr_brigade.c]
Date Thu, 23 May 2002 21:50:52 GMT
On Thu, May 23, 2002 at 05:21:25PM -0400, Cliff Woolley wrote:
> On Thu, 23 May 2002, Cliff Woolley wrote:
> > > At some point, apr_brigade_write() got broken. When the HEAP bucket at the
> > > end of the brigade fills up, the flush function should be called. The
> > > current code allocates *another* heap bucket. With this logic, it is
> > > possible to grow a brigade without any periodic flushing. *very* bad.
> >
> > That could be my fault from when I got rid of the awful awful beast that
> > was check_brigade_flush().  I *thought* I was very careful to keep the
> > exact semantics, but I might have missed this case.  I'll take another
> > look at it.
> 
> Hmmm... when SVN calls apr_brigade_write(), does it provide a flush
> function or not?

Definitely. We're using the various ap_f* functions, plus a bit of the
brigade functions directly.

> Where in SVN is this, so I can take a closer look?

You can see their usage in:

  http://svn.collab.net/repos/svn/trunk/subversion/mod_dav_svn/update.c
    - apr_brigade_vprintf()
    - ap_filter_flush
    
  http://svn.collab.net/repos/svn/trunk/subversion/mod_dav_svn/merge.c
    - ap_fputstrs()
    - ap_fputs()

There may be other calls. The filter stack is called 'output' in both of
those files, so you can see where they're generating the output.

Cheers,
-g

(and yes, those URLs are directly into the SVN repository; they are
 displaying the HEAD revision)

-- 
Greg Stein, http://www.lyra.org/

Mime
View raw message