[Freeswitch-svn] [commit] r2299 - freeswitch/trunk/src

Freeswitch SVN anthm at freeswitch.org
Tue Aug 15 15:02:07 EDT 2006


Author: anthm
Date: Tue Aug 15 15:02:06 2006
New Revision: 2299

Modified:
   freeswitch/trunk/src/switch.c
   freeswitch/trunk/src/switch_core.c
   freeswitch/trunk/src/switch_log.c

Log:
tweak shutdown process

Modified: freeswitch/trunk/src/switch.c
==============================================================================
--- freeswitch/trunk/src/switch.c	(original)
+++ freeswitch/trunk/src/switch.c	Tue Aug 15 15:02:06 2006
@@ -220,12 +220,9 @@
 
 	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CONSOLE, "End existing sessions\n");
 	switch_core_session_hupall();
+	switch_yield(10000);
 	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CONSOLE, "Clean up modules.\n");
 	switch_loadable_module_shutdown();
-	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CONSOLE, "Tearing down environment.\n");
-	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CONSOLE, "Exiting Now.\n");
 	switch_core_destroy();
-
-
 	return 0;
 }

Modified: freeswitch/trunk/src/switch_core.c
==============================================================================
--- freeswitch/trunk/src/switch_core.c	(original)
+++ freeswitch/trunk/src/switch_core.c	Tue Aug 15 15:02:06 2006
@@ -3116,10 +3116,11 @@
 SWITCH_DECLARE(switch_status_t) switch_core_destroy(void)
 {
 
-	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CONSOLE, "Closing Event Engine.\n");
-	switch_event_shutdown();
 
 
+	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CONSOLE, "Closing Event Engine.\n");
+	switch_event_shutdown();
+	
 	switch_queue_push(runtime.sql_queue, NULL);
 	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CONSOLE, "Waiting for unfinished SQL transactions\n");
 	while (switch_queue_size(runtime.sql_queue) > 0) {
@@ -3128,10 +3129,11 @@
 	switch_core_db_close(runtime.db);
 	switch_core_db_close(runtime.event_db);
 	switch_xml_destroy();
+
+	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CONSOLE, "Finalizing Shutdown.\n");
 	switch_log_shutdown();
-	switch_yield(10000);
+
 	if (runtime.memory_pool) {
-		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CONSOLE, "Unallocating memory pool.\n");
 		apr_pool_destroy(runtime.memory_pool);
 		apr_terminate();
 	}

Modified: freeswitch/trunk/src/switch_log.c
==============================================================================
--- freeswitch/trunk/src/switch_log.c	(original)
+++ freeswitch/trunk/src/switch_log.c	Tue Aug 15 15:02:06 2006
@@ -118,7 +118,7 @@
 	assert(obj == NULL || obj != NULL);
 	THREAD_RUNNING = 1;
 
-	while(LOG_QUEUE) {
+	while(THREAD_RUNNING == 1) {
 		void *pop = NULL;
 		switch_log_node_t *node = NULL;
 		switch_log_binding_t *binding;
@@ -128,7 +128,6 @@
 		}
 		
 		if (!pop) {
-			LOG_QUEUE = NULL;
 			break;
 		}
 		
@@ -277,7 +276,11 @@
 
 SWITCH_DECLARE(switch_status_t) switch_log_shutdown(void)
 {
+	THREAD_RUNNING = -1;
 	switch_queue_push(LOG_QUEUE, NULL);
+	while (THREAD_RUNNING) {
+		switch_yield(1000);
+	}
 	return SWITCH_STATUS_SUCCESS;
 }
 



More information about the Freeswitch-svn mailing list