From 0d7e6b8243e49029794b81e12325c553a49dfcc1 Mon Sep 17 00:00:00 2001 From: Chris Darroch Date: Tue, 2 Jan 2007 19:40:34 +0000 Subject: [PATCH] Destroy pmain pool when exiting ap_mpm_run() so that cleanups registered in modules' child_init hooks are performed (e.g., mod_log_config and mod_dbd). git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@491907 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES | 4 ++++ server/mpm/netware/mpm_netware.c | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/CHANGES b/CHANGES index 5fa4739b31..654ad8e1b5 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,10 @@ Changes with Apache 2.3.0 [Remove entries to the current 2.0 and 2.2 section below, when backported] + *) netware MPM: Destroy pmain pool when exiting ap_mpm_run() so that + cleanups registered in modules' child_init hooks are performed. + [Chris Darroch] + *) mod_dbd: Handle error conditions in dbd_construct() properly. Simplify ap_dbd_open() and use correct arguments to apr_dbd_error() when non-threaded. Register correct cleanup data in non-threaded diff --git a/server/mpm/netware/mpm_netware.c b/server/mpm/netware/mpm_netware.c index 54d7960452..b2417ee899 100644 --- a/server/mpm/netware/mpm_netware.c +++ b/server/mpm/netware/mpm_netware.c @@ -191,6 +191,14 @@ static void clean_child_exit(int code, int worker_num, apr_pool_t *ptrans, NXThreadExit((void*)&code); } +/* proper cleanup when returning from ap_mpm_run() */ +static void mpm_main_cleanup(void) +{ + if (pmain) { + apr_pool_destroy(pmain); + } +} + AP_DECLARE(apr_status_t) ap_mpm_query(int query_code, int *result) { switch(query_code){ @@ -934,6 +942,7 @@ int ap_mpm_run(apr_pool_t *_pconf, apr_pool_t *plog, server_rec *s) apr_thread_yield(); } + mpm_main_cleanup(); return 1; } else { /* the only other way out is a restart */ @@ -956,6 +965,7 @@ int ap_mpm_run(apr_pool_t *_pconf, apr_pool_t *plog, server_rec *s) printf ("\nRestarting...\n"); } + mpm_main_cleanup(); return 0; } -- 2.49.0