]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
fix race on creating new session thread vs. setting init state causing hung channels
authorAnthony Minessale <anthony.minessale@gmail.com>
Thu, 11 Oct 2007 19:12:18 +0000 (19:12 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Thu, 11 Oct 2007 19:12:18 +0000 (19:12 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@5841 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/switch_core_state_machine.c

index d94ec009c4c72a1a52e179eb89cf1d0c7b0ed003..e8faf203c20e717e4792210fd49f1444ff12c9e7 100644 (file)
@@ -431,7 +431,11 @@ SWITCH_DECLARE(void) switch_core_session_run(switch_core_session_t *session)
 
 
                if (midstate == endstate) {
-                       switch_thread_cond_wait(session->cond, session->mutex);
+                       if (endstate == CS_NEW) {
+                               switch_yield(1000);
+                       } else {
+                               switch_thread_cond_wait(session->cond, session->mutex);
+                       }
                }
 
        }