From 980a1ec470cd2f7137b094506d493168dce03745 Mon Sep 17 00:00:00 2001
From: Anthony Minessale <anthony.minessale@gmail.com>
Date: Fri, 13 Jan 2006 02:05:39 +0000
Subject: [PATCH] grr

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@338 d0543943-73ff-0310-b7d9-9358b9ac24b2
---
 src/mod/applications/mod_playback/mod_playback.c | 7 ++++---
 src/mod/endpoints/mod_exosip/mod_exosip.c        | 2 +-
 src/mod/endpoints/mod_iaxchan/mod_iaxchan.c      | 2 +-
 src/mod/endpoints/mod_portaudio/mod_portaudio.c  | 2 +-
 src/switch_core.c                                | 8 ++++++--
 5 files changed, 13 insertions(+), 8 deletions(-)

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