]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-6440 regression from this patch on single CPU or VM machines causes startup race
authorAnthony Minessale <anthm@freeswitch.org>
Mon, 23 Jun 2014 18:55:52 +0000 (23:55 +0500)
committerBrian West <brian@freeswitch.org>
Fri, 11 Jul 2014 15:59:36 +0000 (10:59 -0500)
src/switch_core_session.c

index e8a2b5bb054d060f1acc7ff426ae01f00bc5627d..a7d1c853ef404473198e4fd65dd705e85ba17b6d 100644 (file)
@@ -1773,17 +1773,22 @@ static void *SWITCH_THREAD_FUNC switch_core_session_thread_pool_manager(switch_t
        while(session_manager.ready) {
                int check = 1;
                int ttl = 0;
+               uint32_t xsleep = sleep;
 
                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);
+                       xsleep = 10000;
                }
 
+               switch_mutex_lock(session_manager.cond2_mutex);
+               switch_thread_cond_timedwait(session_manager.cond, session_manager.cond_mutex, xsleep);
+               switch_mutex_unlock(session_manager.cond2_mutex);
+               
+
                if (switch_micro_time_now() >= next) {
                        if (session_manager.popping) {
 #ifdef DEBUG_THREAD_POOL