From: Anthony Minessale Date: Fri, 13 Jun 2014 00:46:40 +0000 (+0500) Subject: FS-6440 --resolve X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d298f8688a03df2bd5a76066d692f59e59e3f5bf;p=thirdparty%2Ffreeswitch.git FS-6440 --resolve --- 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) {