You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@apr.apache.org by "William A. Rowe, Jr." <wr...@rowe-clan.net> on 2001/09/19 21:32:02 UTC
Re: New post-log-transaction hook?
From: "Jon Travis" <jt...@covalent.net>
Sent: Wednesday, September 19, 2001 2:27 PM
> On Wed, Sep 19, 2001 at 12:16:24PM -0700, Ryan Bloom wrote:
> > On Wednesday 19 September 2001 11:37 am, William A. Rowe, Jr. wrote:
> > >
> > > Considering how we use pools for dynamic libraries and the rest, it's
> > > absolutely vital that they are unspun from the pool in LIFO order of their
> > > creation.
> >
> > I agree with Bill. Having reviewed the code quite deeply yesterday, pool
> > cleanups follow a very clean rule, and registering a cleanup from within
> > a cleanup will always work if done correctly. If you have data in a pool
>
> BZzzzt. The attached code registers a cleanup from within a cleanup, and
> does so 'correctly'. See the program attached at the bottom, which behaves
> incorrectly. It is simple code, but not knowing that a given
> function registers a cleanup can cause major problems (leaking
> file descriptors, etc. eventually). The file should contain 'Cleanup',
> because the cleanup of the file should flush the buffer -- that
> cleanup is never run, though.
Jon, there is no _doubt_ that it's broken right now. I was speaking of the
'ideal', not today's borked behavior.
Extending the LIFO cleanups idea as a stack, we should be popping as we call
each cleanup, and allowing new cleanups to be pushed onto the end of the
cleanup stack..