104 lines
3.5 KiB
Diff
104 lines
3.5 KiB
Diff
From 6df2b8ec805230db90677b54afe2d122cf0bd8c8 Mon Sep 17 00:00:00 2001
|
|
From: Rainer Jung <rjung@apache.org>
|
|
Date: Wed, 17 Jul 2019 11:43:58 +0000
|
|
Subject: [PATCH 05/10] 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.
|
|
|
|
Backport of r1675967 from trunk resp. r1863202 from 1.7.x.
|
|
|
|
|
|
git-svn-id: https://svn.apache.org/repos/asf/apr/apr/branches/1.6.x@1863211 13f79535-47bb-0310-9956-ffa450edef68
|
|
---
|
|
CHANGES | 4 ++++
|
|
memory/unix/apr_pools.c | 27 +++++++++++++--------------
|
|
2 files changed, 17 insertions(+), 14 deletions(-)
|
|
|
|
diff --git a/memory/unix/apr_pools.c b/memory/unix/apr_pools.c
|
|
index 17fadb42a..9fdd00129 100644
|
|
--- a/memory/unix/apr_pools.c
|
|
+++ b/memory/unix/apr_pools.c
|
|
@@ -1886,10 +1886,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;
|
|
@@ -1905,6 +1901,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
|
|
@@ -1929,12 +1929,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
|
|
@@ -2043,6 +2043,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
|
|
@@ -2072,10 +2075,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;
|
|
}
|
|
|
|
@@ -2129,6 +2128,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;
|
|
@@ -2151,10 +2154,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;
|
|
}
|
|
|
|
--
|
|
2.19.1
|
|
|