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" <[EMAIL PROTECTED]> To: <[email protected]> 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 | [EMAIL PROTECTED] | PGP public key at web site: > http://www.geocities.com/SiliconValley/Park/9289/ > Born in Roswell... married an alien... >
