<[EMAIL PROTECTED]> writes: > If you don't want the child process to destroy the mutex, then you should > kill that cleanup in the child process. That is why we have the > apr_pool_cleanup_kill API.
Are you suggesting the application should do this, or the library? Having the library do it doesn't sound very robust, when would you do it? At apr_proc_fork time? What about a third party library that doesn't use APR, calls fork directly and later runs atexit handlers? The application cannot do it at present because it has no access to the cleanup handler. So this would mean adding a function to the proc_mutex interface, apr_proc_mutex_cleanup_kill perhaps? We would need apr_global_mutex_cleanup_kill as well. Even then, an application using a proc_mutex has to know about every use of fork/apr_proc_fork in every library. I think the current pool cleanup handler is a mistake. The handler should cleanup only those resources local to the process, leaving the proc_mutex in a working state. It should be the application's responsibility to call (or fail to call :) apr_proc_mutex_destroy at the appropriate place. -- Philip Martin