Revision
17370
Author
anthm
Date
2010-04-22 13:28:44 -0500 (Thu, 22 Apr 2010)

Log Message

try harder to get db handle in sql thread and fail out if it can't get one

Modified Paths

Diff

Modified: freeswitch/trunk/src/switch_core_sqldb.c (17369 => 17370)


--- freeswitch/trunk/src/switch_core_sqldb.c	2010-04-22 18:20:37 UTC (rev 17369)
+++ freeswitch/trunk/src/switch_core_sqldb.c	2010-04-22 18:28:44 UTC (rev 17370)
@@ -809,6 +809,7 @@
 	int lc = 0;
 	uint32_t loops = 0, sec = 0;
 	uint32_t l1 = 1000;
+	uint32_t sanity = 120;
 
 	switch_assert(sqlbuf);
 
@@ -816,10 +817,19 @@
 		l1 = 10;
 	}
 
+	while (!sql_manager.event_db) {
+		if (switch_core_db_handle(&sql_manager.event_db) == SWITCH_STATUS_SUCCESS && sql_manager.event_db) break;
+		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Error getting core db, Retrying\n");
+		switch_yield(500000);
+		sanity--;
+	}
+
 	if (!sql_manager.event_db) {
-		switch_core_db_handle(&sql_manager.event_db);
+		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Error getting core db Disabling core sql functionality\n");
+		return NULL;
 	}
 
+
 	sql_manager.thread_running = 1;
 
 	while (sql_manager.thread_running == 1) {