[Freeswitch-svn] [commit] r7943 - freeswitch/trunk/src
Freeswitch SVN
mikej at freeswitch.org
Wed Mar 19 22:05:34 EDT 2008
Author: mikej
Date: Wed Mar 19 22:05:34 2008
New Revision: 7943
Modified:
freeswitch/trunk/src/switch_core.c
freeswitch/trunk/src/switch_core_memory.c
freeswitch/trunk/src/switch_time.c
Log:
fix shutdown race destroying memory pools.
Modified: freeswitch/trunk/src/switch_core.c
==============================================================================
--- freeswitch/trunk/src/switch_core.c (original)
+++ freeswitch/trunk/src/switch_core.c Wed Mar 19 22:05:34 2008
@@ -1049,6 +1049,7 @@
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CONSOLE, "End existing sessions\n");
switch_core_session_hupall(SWITCH_CAUSE_SYSTEM_SHUTDOWN);
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CONSOLE, "Clean up modules.\n");
+ switch_core_memory_stop();
switch_loadable_module_shutdown();
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CONSOLE, "Closing Event Engine.\n");
@@ -1061,7 +1062,6 @@
switch_rtp_shutdown();
switch_xml_destroy();
- switch_core_memory_stop();
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CONSOLE, "Finalizing Shutdown.\n");
switch_log_shutdown();
Modified: freeswitch/trunk/src/switch_core_memory.c
==============================================================================
--- freeswitch/trunk/src/switch_core_memory.c (original)
+++ freeswitch/trunk/src/switch_core_memory.c Wed Mar 19 22:05:34 2008
@@ -312,16 +312,13 @@
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[128] = "";
-
-
switch_assert(pool != NULL);
#ifdef DEBUG_ALLOC2
switch_log_printf(SWITCH_CHANNEL_ID_LOG, file, func, line, NULL, SWITCH_LOG_CONSOLE, "Free Pool\n");
#endif
- if (switch_queue_push(memory_manager.pool_queue, *pool) != SWITCH_STATUS_SUCCESS) {
+ if ((memory_manager.pool_thread_running != 1) || (switch_queue_push(memory_manager.pool_queue, *pool) != SWITCH_STATUS_SUCCESS)) {
apr_pool_destroy(*pool);
}
*pool = NULL;
Modified: freeswitch/trunk/src/switch_time.c
==============================================================================
--- freeswitch/trunk/src/switch_time.c (original)
+++ freeswitch/trunk/src/switch_time.c Wed Mar 19 22:05:34 2008
@@ -421,7 +421,6 @@
switch_yield(10000);
}
}
- switch_core_destroy_memory_pool(&module_pool);
return SWITCH_STATUS_SUCCESS;
}
More information about the Freeswitch-svn
mailing list