]> granicus.if.org Git - apache/commitdiff
Destroy pmain pool when exiting ap_mpm_run() so that cleanups
authorChris Darroch <chrisd@apache.org>
Tue, 2 Jan 2007 19:40:34 +0000 (19:40 +0000)
committerChris Darroch <chrisd@apache.org>
Tue, 2 Jan 2007 19:40:34 +0000 (19:40 +0000)
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
server/mpm/netware/mpm_netware.c

diff --git a/CHANGES b/CHANGES
index 5fa4739b31c63529195a42dd4fcf59472b53db34..654ad8e1b55a50174a1dd07d05a4de86472aedae 100644 (file)
--- 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
index 54d796045246ca6436c861ba4852ae75a98902bf..b2417ee89921ea9a076871b05ba449108a93c952 100644 (file)
@@ -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;
 }