diff --git a/src/mod/applications/mod_playback/mod_playback.c b/src/mod/applications/mod_playback/mod_playback.c index f1a51985ee..75fe0c13da 100644 --- a/src/mod/applications/mod_playback/mod_playback.c +++ b/src/mod/applications/mod_playback/mod_playback.c @@ -166,14 +166,15 @@ void playback_function(switch_core_session *session, char *data) switch_core_session_kill_channel(session, SWITCH_SIG_KILL); - /* End the audio absorbing thread */ - switch_core_thread_session_end(&thread_session); - switch_core_timer_destroy(&timer); switch_core_codec_destroy(&codec); switch_channel_hangup(channel); + + /* End the audio absorbing thread */ + switch_core_thread_session_end(&thread_session); + } static const switch_application_interface playback_application_interface = { diff --git a/src/mod/endpoints/mod_exosip/mod_exosip.c b/src/mod/endpoints/mod_exosip/mod_exosip.c index 611116022b..82ad91696d 100644 --- a/src/mod/endpoints/mod_exosip/mod_exosip.c +++ b/src/mod/endpoints/mod_exosip/mod_exosip.c @@ -1320,7 +1320,7 @@ SWITCH_MOD_DECLARE(switch_status) switch_module_runtime(void) globals.running = 1; while (globals.running > 0) { if (!(event = eXosip_event_wait(0,100))) { - switch_yield(100); + switch_yield(1000); continue; } diff --git a/src/mod/endpoints/mod_iaxchan/mod_iaxchan.c b/src/mod/endpoints/mod_iaxchan/mod_iaxchan.c index cf16a964a0..7d123a3413 100644 --- a/src/mod/endpoints/mod_iaxchan/mod_iaxchan.c +++ b/src/mod/endpoints/mod_iaxchan/mod_iaxchan.c @@ -316,7 +316,7 @@ static switch_status iax_set_codec(struct private_object *tech_pvt, struct iax_s unsigned short samples = iax_build_codec_rates(); unsigned short mixed = ((tech_pvt->samprate ? tech_pvt->samprate : *samprate) & samples); - printf("\n\n******WTF %u %u %u\n******\n", *samprate, samples, mixed); + //printf("\n\n******WTF %u %u %u\n******\n", *samprate, samples, mixed); srate = 8000; if (mixed & IAX_RATE_16KHZ) { diff --git a/src/mod/endpoints/mod_portaudio/mod_portaudio.c b/src/mod/endpoints/mod_portaudio/mod_portaudio.c index e5afeb4aa9..dc831ff985 100644 --- a/src/mod/endpoints/mod_portaudio/mod_portaudio.c +++ b/src/mod/endpoints/mod_portaudio/mod_portaudio.c @@ -199,7 +199,7 @@ static switch_status channel_on_hangup(switch_core_session *session) { switch_channel *channel = NULL; struct private_object *tech_pvt = NULL; - + channel = switch_core_session_get_channel(session); assert(channel != NULL); diff --git a/src/switch_core.c b/src/switch_core.c index 04620406f2..751fb6193c 100644 --- a/src/switch_core.c +++ b/src/switch_core.c @@ -493,6 +493,10 @@ static void *switch_core_service_thread(switch_thread *thread, void *obj) channel = switch_core_session_get_channel(session); assert(channel != NULL); +#ifdef WTF + data->running = 0; + return NULL; +#endif while(data->running > 0) { switch(switch_core_session_read_frame(session, &read_frame, -1, stream_id)) { @@ -506,7 +510,7 @@ static void *switch_core_service_thread(switch_thread *thread, void *obj) break; } - switch_yield(100); + switch_yield(10000); } data->running = 0; @@ -1791,7 +1795,7 @@ SWITCH_DECLARE(void) switch_core_session_thread_launch(switch_core_session *sess SWITCH_DECLARE(void) switch_core_session_launch_thread(switch_core_session *session, switch_thread_start_t func, void *obj) { switch_thread *thread; - switch_threadattr_t *thd_attr;; + switch_threadattr_t *thd_attr = NULL; switch_threadattr_create(&thd_attr, session->pool); switch_threadattr_detach_set(thd_attr, 1);