From d298f8688a03df2bd5a76066d692f59e59e3f5bf Mon Sep 17 00:00:00 2001
From: Anthony Minessale <anthm@freeswitch.org>
Date: Fri, 13 Jun 2014 05:46:40 +0500
Subject: [PATCH] FS-6440 --resolve

---
 src/switch_core_session.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/src/switch_core_session.c b/src/switch_core_session.c
index 1860b55065..e8a2b5bb05 100644
--- a/src/switch_core_session.c
+++ b/src/switch_core_session.c
@@ -1772,10 +1772,17 @@ static void *SWITCH_THREAD_FUNC switch_core_session_thread_pool_manager(switch_t
 
 	while(session_manager.ready) {
 		int check = 1;
+		int ttl = 0;
 
-		switch_mutex_lock(session_manager.cond2_mutex);
-		switch_thread_cond_timedwait(session_manager.cond, session_manager.cond_mutex, sleep);
-		switch_mutex_unlock(session_manager.cond2_mutex);
+		switch_mutex_lock(session_manager.mutex);
+		ttl = switch_queue_size(session_manager.thread_queue);
+		switch_mutex_unlock(session_manager.mutex);
+
+		if (!ttl) {
+			switch_mutex_lock(session_manager.cond2_mutex);
+			switch_thread_cond_timedwait(session_manager.cond, session_manager.cond_mutex, sleep);
+			switch_mutex_unlock(session_manager.cond2_mutex);
+		}
 
 		if (switch_micro_time_now() >= next) {
 			if (session_manager.popping) {