On Wednesday 19 September 2001 11:37 am, William A. Rowe, Jr. wrote:
> From: "Greg Stein" <[EMAIL PROTECTED]>
> Sent: Wednesday, September 19, 2001 1:26 PM
>
> > On Wed, Sep 19, 2001 at 01:52:12PM -0400, Rodent of Unusual Size wrote:
> > > Greg Stein wrote:
> > > > It isn't a bug. Cleanups are for just wrapping things up,
> > > > not doing work.
> > >
> > > If that's the authoritative answer, then we need to provide
> > > a supported way for 'doing work' at cleanup time.
> > >
> > > > You might not even be able to open and use that file if
> > > > your pool is n the process of being destroyed.
> > >
> > > That sounds like utter tripe. If you can't depend on the
> > > pool lasting at least until your cleanup routine ends,
> > > then the whole cleanup mechanism is seriously borked. AFAIK
> > > it isn't, so I think the above assertion *is*.
> >
> > The problem is cross-dependency between the cleanup actions. One can
> > destroy something another cleanup needs. If you restrict their actions to
> > "simple" things, then the cross-dependencies are (hopefully!) removed.
>
> Really? No. Cleanups are run as a LIFO stack. Anything that existed when
> something was added to the pool must exist when that something is removed
> from the pool.
>
> IMHO, we need to make subpool scrubbing an actual LIFO cleanup as well, so
> that will also be true of subpools.
>
> 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
when the cleanup is registered, it is gauranteed to be there when the cleanup
is run.
Anything else is completely broken.
Ryan
______________________________________________________________
Ryan Bloom [EMAIL PROTECTED]
Covalent Technologies [EMAIL PROTECTED]
--------------------------------------------------------------