[Freeswitch-svn] [commit] r10327 - freeswitch/trunk/src/mod/event_handlers/mod_event_socket

FreeSWITCH SVN anthm at freeswitch.org
Tue Nov 11 05:32:12 PST 2008


Author: anthm
Date: Tue Nov 11 08:32:11 2008
New Revision: 10327

Log:
update

Modified:
   freeswitch/trunk/src/mod/event_handlers/mod_event_socket/mod_event_socket.c

Modified: freeswitch/trunk/src/mod/event_handlers/mod_event_socket/mod_event_socket.c
==============================================================================
--- freeswitch/trunk/src/mod/event_handlers/mod_event_socket/mod_event_socket.c	(original)
+++ freeswitch/trunk/src/mod/event_handlers/mod_event_socket/mod_event_socket.c	Tue Nov 11 08:32:11 2008
@@ -414,12 +414,15 @@
 	if (switch_test_flag(listener, LFLAG_ASYNC)) {
 		launch_listener_thread(listener);
 		switch_ivr_park(session, NULL);
+		return;
 	} else {
 		listener_run(NULL, (void *) listener);
 	}
 
-	while (switch_test_flag(listener, LFLAG_SESSION)) {
-		switch_yield(100000);
+	if (switch_channel_get_state(channel) >= CS_HANGUP) {
+		while (switch_test_flag(listener, LFLAG_SESSION)) {
+			switch_yield(100000);
+		}
 	}
 
 }
@@ -1602,8 +1605,13 @@
 	switch_mutex_lock(globals.listener_mutex);
 	prefs.threads++;
 	switch_mutex_unlock(globals.listener_mutex);
-
+	
 	switch_assert(listener != NULL);
+	
+	if ((session = listener->session)) {
+		channel = switch_core_session_get_channel(session);
+		switch_core_session_read_lock(session);
+	}
 
 	if (prefs.acl_count && listener->sa && !switch_strlen_zero(listener->remote_ip)) {
 		uint32_t x = 0;
@@ -1624,13 +1632,7 @@
 			}
 		}
 	}
-
-
-	if ((session = listener->session)) {
-		channel = switch_core_session_get_channel(session);
-		switch_core_session_read_lock(session);
-	}
-
+	
 	if (switch_strlen_zero(listener->remote_ip)) {
 		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Connection Open\n");
 	} else {



More information about the Freeswitch-svn mailing list