Commit e81f613a authored by Chris Darroch's avatar Chris Darroch
Browse files

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
parent dba6e249
Loading
Loading
Loading
Loading
+4 −0
Changes for CHANGES: 4 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -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
+10 −0
Changes for server/mpm/netware/mpm_netware.c: 10 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -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;
}