]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
timeout calls stuck in CS_NEW after 1 minute
authorAnthony Minessale <anthony.minessale@gmail.com>
Tue, 21 Jul 2009 19:17:22 +0000 (19:17 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Tue, 21 Jul 2009 19:17:22 +0000 (19:17 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@14313 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/switch_core_state_machine.c

index fc57f9053f1f5ae9aa1e1c87fdd101ca9b2e189d..6fd0db9f0d12d3e1f33c58b1fc6f36ac67d8ca51 100644 (file)
@@ -332,6 +332,7 @@ SWITCH_DECLARE(void) switch_core_session_run(switch_core_session_t *session)
        switch_thread_id_t thread_id;
        jmp_buf env;
        int sig, silly = 0;
+       uint32_t new_loops = 60000000;
 
        if (switch_test_flag((&runtime), SCF_CRASH_PROT)) {
                thread_id = switch_thread_self();
@@ -520,6 +521,10 @@ SWITCH_DECLARE(void) switch_core_session_run(switch_core_session_t *session)
                if (endstate == switch_channel_get_running_state(session->channel)) {
                        if (endstate == CS_NEW) {
                                switch_cond_next();
+                               if (!--new_loops) {
+                                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "%s Timeout waiting for next instruction in CS_NEW!\n", session->uuid_str);
+                                       switch_channel_hangup(session->channel, SWITCH_CAUSE_INVALID_CALL_REFERENCE);
+                               }
                        } else {
                                switch_thread_cond_wait(session->cond, session->mutex);
                        }