From: Anthony Minessale Date: Fri, 23 Apr 2010 17:14:37 +0000 (-0500) Subject: add sanity check to launch threads that catch hangup and are not in a thread to make... X-Git-Tag: git2svn-syncpoint-master~207^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b6146a44f50bc490fc47ab49e76193ba82e1c064;p=thirdparty%2Ffreeswitch.git add sanity check to launch threads that catch hangup and are not in a thread to make sure they clean up --- diff --git a/src/switch_channel.c b/src/switch_channel.c index 345d4e791a..acefec30dc 100644 --- a/src/switch_channel.c +++ b/src/switch_channel.c @@ -2108,6 +2108,11 @@ SWITCH_DECLARE(switch_channel_state_t) switch_channel_perform_hangup(switch_chan switch_log_printf(SWITCH_CHANNEL_ID_LOG, file, func, line, switch_channel_get_uuid(channel), SWITCH_LOG_NOTICE, "Hangup %s [%s] [%s]\n", channel->name, state_names[last_state], switch_channel_cause2str(channel->hangup_cause)); + + if (!switch_core_session_running(channel->session)) { + switch_core_session_thread_launch(channel->session); + } + if (switch_event_create(&event, SWITCH_EVENT_CHANNEL_HANGUP) == SWITCH_STATUS_SUCCESS) { switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Hangup-Cause", switch_channel_cause2str(hangup_cause)); switch_channel_event_set_data(channel, event);