[Core] Track who calls memory pool destroy.
This commit is contained in:
parent
8e0c0df5b6
commit
4dc52cfb4b
|
@ -463,8 +463,19 @@ SWITCH_DECLARE(switch_status_t) switch_core_perform_new_memory_pool(switch_memor
|
||||||
|
|
||||||
SWITCH_DECLARE(switch_status_t) switch_core_perform_destroy_memory_pool(switch_memory_pool_t **pool, const char *file, const char *func, int line)
|
SWITCH_DECLARE(switch_status_t) switch_core_perform_destroy_memory_pool(switch_memory_pool_t **pool, const char *file, const char *func, int line)
|
||||||
{
|
{
|
||||||
|
char *tmp;
|
||||||
|
const char *tag;
|
||||||
switch_assert(pool != NULL);
|
switch_assert(pool != NULL);
|
||||||
|
|
||||||
|
/* In tag we store who calls the pool creation.
|
||||||
|
Now we append it with who calls the pool destroy.
|
||||||
|
*/
|
||||||
|
if (*pool) {
|
||||||
|
tag = apr_pool_tag(*pool, NULL);
|
||||||
|
tmp = switch_core_sprintf(*pool, "%s,%s:%d", (tag ? tag : ""), file, line);
|
||||||
|
apr_pool_tag(*pool, tmp);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef DEBUG_ALLOC2
|
#ifdef DEBUG_ALLOC2
|
||||||
switch_log_printf(SWITCH_CHANNEL_ID_LOG, file, func, line, NULL, SWITCH_LOG_CONSOLE, "%p Free Pool %s\n", (void *) *pool, apr_pool_tag(*pool, NULL));
|
switch_log_printf(SWITCH_CHANNEL_ID_LOG, file, func, line, NULL, SWITCH_LOG_CONSOLE, "%p Free Pool %s\n", (void *) *pool, apr_pool_tag(*pool, NULL));
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -54,7 +54,7 @@ static struct {
|
||||||
int task_thread_running;
|
int task_thread_running;
|
||||||
switch_queue_t *event_queue;
|
switch_queue_t *event_queue;
|
||||||
switch_memory_pool_t *memory_pool;
|
switch_memory_pool_t *memory_pool;
|
||||||
} globals;
|
} globals = { 0 };
|
||||||
|
|
||||||
static void switch_scheduler_execute(switch_scheduler_task_container_t *tp)
|
static void switch_scheduler_execute(switch_scheduler_task_container_t *tp)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue