From b117a65c5035cf43e00d5e5add58162f85dfecef Mon Sep 17 00:00:00 2001
From: Anthony Minessale <anthm@freeswitch.org>
Date: Thu, 17 May 2012 19:57:02 -0500
Subject: [PATCH] put a little contention in the reg in new thread feature to
 prevent endless pileup

---
 src/mod/endpoints/mod_sofia/sofia.c | 4 +++-
 src/switch_core.c                   | 2 +-
 src/switch_core_sqldb.c             | 2 +-
 3 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/mod/endpoints/mod_sofia/sofia.c b/src/mod/endpoints/mod_sofia/sofia.c
index d7dac7581b..0e579ca1f8 100644
--- a/src/mod/endpoints/mod_sofia/sofia.c
+++ b/src/mod/endpoints/mod_sofia/sofia.c
@@ -1306,6 +1306,7 @@ void sofia_process_dispatch_event_in_thread(sofia_dispatch_event_t **dep)
 	switch_threadattr_t *thd_attr = NULL;
 	switch_memory_pool_t *pool;
 	switch_thread_t *thread;
+	sofia_profile_t *profile = (*dep)->profile;
 
 	switch_core_new_memory_pool(&pool);
 
@@ -1313,6 +1314,7 @@ void sofia_process_dispatch_event_in_thread(sofia_dispatch_event_t **dep)
 	*dep = NULL;
 	de->pool = pool;
 
+	switch_mutex_lock(profile->ireg_mutex);
 	switch_threadattr_create(&thd_attr, de->pool);
 	switch_threadattr_stacksize_set(thd_attr, SWITCH_THREAD_STACKSIZE);
 	switch_thread_create(&thread, 
@@ -1320,7 +1322,7 @@ void sofia_process_dispatch_event_in_thread(sofia_dispatch_event_t **dep)
 						 sofia_msg_thread_run_once, 
 						 de,
 						 de->pool);
-	
+	switch_mutex_unlock(profile->ireg_mutex);
 
 }
 
diff --git a/src/switch_core.c b/src/switch_core.c
index 8139f8ccf8..f89aeb5ee2 100644
--- a/src/switch_core.c
+++ b/src/switch_core.c
@@ -1420,7 +1420,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_init(switch_core_flag_t flags, switc
 	gethostname(runtime.hostname, sizeof(runtime.hostname));
 
 	runtime.max_db_handles = 50;
-	runtime.db_handle_timeout = 5000000;;
+	runtime.db_handle_timeout = 5000000;
 	
 	runtime.runlevel++;
 	runtime.sql_buffer_len = 1024 * 32;
diff --git a/src/switch_core_sqldb.c b/src/switch_core_sqldb.c
index 5c59d96962..85d38160ed 100644
--- a/src/switch_core_sqldb.c
+++ b/src/switch_core_sqldb.c
@@ -218,7 +218,7 @@ SWITCH_DECLARE(switch_status_t) _switch_core_db_handle(switch_cache_db_handle_t
 }
 
 
-#define SQL_CACHE_TIMEOUT 120
+#define SQL_CACHE_TIMEOUT 30
 #define SQL_REG_TIMEOUT 15