summaryrefslogtreecommitdiff
path: root/memory
diff options
context:
space:
mode:
authorBranko Čibej <brane@apache.org>2015-04-24 22:31:23 +0000
committerBranko Čibej <brane@apache.org>2015-04-24 22:31:23 +0000
commit4d54f2559bc8523119d901bce0a7fcd414a1ed47 (patch)
tree1fd672cc3cdb496e1b5b921a9804d8a69745eea7 /memory
parente621eeb85a32f989cecf6c5227d333ea0b8823d6 (diff)
downloadapr-4d54f2559bc8523119d901bce0a7fcd414a1ed47.tar.gz
Fix pool debugging output so that creation events are
always emitted before allocation events and subpool destruction events are emitted on pool clear/destroy for proper accounting. git-svn-id: https://svn.apache.org/repos/asf/apr/apr/trunk@1675967 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'memory')
-rw-r--r--memory/unix/apr_pools.c27
1 files changed, 13 insertions, 14 deletions
diff --git a/memory/unix/apr_pools.c b/memory/unix/apr_pools.c
index eb83d9d66..b6660cc9a 100644
--- a/memory/unix/apr_pools.c
+++ b/memory/unix/apr_pools.c
@@ -1857,10 +1857,6 @@ APR_DECLARE(void) apr_pool_clear_debug(apr_pool_t *pool,
apr_pool_check_lifetime(pool);
-#if (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE)
- apr_pool_log_event(pool, "CLEAR", file_line, 1);
-#endif /* (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE) */
-
#if APR_HAS_THREADS
if (pool->parent != NULL)
mutex = pool->parent->mutex;
@@ -1876,6 +1872,10 @@ APR_DECLARE(void) apr_pool_clear_debug(apr_pool_t *pool,
pool_clear_debug(pool, file_line);
+#if (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE)
+ apr_pool_log_event(pool, "CLEAR", file_line, 1);
+#endif /* (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE) */
+
#if APR_HAS_THREADS
/* If we had our own mutex, it will have been destroyed by
* the registered cleanups. Recreate the mutex. Unlock
@@ -1900,12 +1900,12 @@ static void pool_destroy_debug(apr_pool_t *pool, const char *file_line)
{
apr_pool_check_lifetime(pool);
+ pool_clear_debug(pool, file_line);
+
#if (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE)
apr_pool_log_event(pool, "DESTROY", file_line, 1);
#endif /* (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE) */
- pool_clear_debug(pool, file_line);
-
/* Remove the pool from the parents child list */
if (pool->parent) {
#if APR_HAS_THREADS
@@ -2014,6 +2014,9 @@ APR_DECLARE(apr_status_t) apr_pool_create_ex_debug(apr_pool_t **newpool,
pool->owner_proc = (apr_os_proc_t)getnlmhandle();
#endif /* defined(NETWARE) */
+#if (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE)
+ apr_pool_log_event(pool, "CREATE", file_line, 1);
+#endif /* (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE) */
if (parent == NULL || parent->allocator != allocator) {
#if APR_HAS_THREADS
@@ -2043,10 +2046,6 @@ APR_DECLARE(apr_status_t) apr_pool_create_ex_debug(apr_pool_t **newpool,
*newpool = pool;
-#if (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE)
- apr_pool_log_event(pool, "CREATE", file_line, 1);
-#endif /* (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE) */
-
return APR_SUCCESS;
}
@@ -2091,6 +2090,10 @@ APR_DECLARE(apr_status_t) apr_pool_create_unmanaged_ex_debug(apr_pool_t **newpoo
}
pool->allocator = pool_allocator;
+#if (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE)
+ apr_pool_log_event(pool, "CREATEU", file_line, 1);
+#endif /* (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE) */
+
if (pool->allocator != allocator) {
#if APR_HAS_THREADS
apr_status_t rv;
@@ -2113,10 +2116,6 @@ APR_DECLARE(apr_status_t) apr_pool_create_unmanaged_ex_debug(apr_pool_t **newpoo
*newpool = pool;
-#if (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE)
- apr_pool_log_event(pool, "CREATEU", file_line, 1);
-#endif /* (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE) */
-
return APR_SUCCESS;
}