You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@apr.apache.org by Jeff Trawick <tr...@attglobal.net> on 2001/07/23 22:11:12 UTC

apr_XXX_set_inherit() brokenness

two problems, I think:

1) The special cleanup needs to be removed if the apr_foo is closed
   before the pool goes away.

   Example:

     mod_file_cache/mmap-ed file

     open file
     create mmap
     close file

     The inherit cleanup is still in place at this point.

2) Either there should be a no-op plain cleanup or the close-pool code
   should not call plain_cleanup if that ptr is NULL.

   run_cleanups() unconditionally calls cleanup->plain_cleanup(), so
   this tries to branch to zero if this is the inherit cleanup.

-- 
Jeff Trawick | trawick@attglobal.net | PGP public key at web site:
       http://www.geocities.com/SiliconValley/Park/9289/
             Born in Roswell... married an alien...

Re: apr_XXX_set_inherit() brokenness

Posted by "William A. Rowe, Jr." <wr...@rowe-clan.net>.
The Crux of the problem is in the disconnected way the entire cleanup API
is working.

apr_pool_child_cleanup_kill() is pure BS, since it also kills the plain cleanup.
Nobody uses it, so I'm killing the function.

I'll replace it with a apr_pool_child_cleanup_set() that allows you to replace
the original child cleanup with a new cleanup, given the void* and plain cleanup.

Bill

----- Original Message ----- 
From: "Jeff Trawick" <tr...@attglobal.net>
To: <de...@apr.apache.org>
Sent: Monday, July 23, 2001 3:11 PM
Subject: apr_XXX_set_inherit() brokenness


> two problems, I think:
> 
> 1) The special cleanup needs to be removed if the apr_foo is closed
>    before the pool goes away.
> 
>    Example:
> 
>      mod_file_cache/mmap-ed file
> 
>      open file
>      create mmap
>      close file
> 
>      The inherit cleanup is still in place at this point.
> 
> 2) Either there should be a no-op plain cleanup or the close-pool code
>    should not call plain_cleanup if that ptr is NULL.
> 
>    run_cleanups() unconditionally calls cleanup->plain_cleanup(), so
>    this tries to branch to zero if this is the inherit cleanup.
> 
> -- 
> Jeff Trawick | trawick@attglobal.net | PGP public key at web site:
>        http://www.geocities.com/SiliconValley/Park/9289/
>              Born in Roswell... married an alien...
>