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); + } } }