From 19d18e46ba8015e049109d66906930d33f831f49 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Thu, 11 Oct 2007 19:12:18 +0000 Subject: [PATCH] fix race on creating new session thread vs. setting init state causing hung channels git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@5841 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/switch_core_state_machine.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/switch_core_state_machine.c b/src/switch_core_state_machine.c index d94ec009c4..e8faf203c2 100644 --- a/src/switch_core_state_machine.c +++ b/src/switch_core_state_machine.c @@ -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); + } } }