[asterisk-commits] file: branch group/pimp_my_sip r385684 - /team/group/pimp_my_sip/channels/

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Mon Apr 15 09:40:15 CDT 2013


Author: file
Date: Mon Apr 15 09:40:11 2013
New Revision: 385684

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=385684
Log:
Fix a deadlock due to queueing a frame from a threadpool thread while holding the channel lock in another thread.

Modified:
    team/group/pimp_my_sip/channels/chan_gulp.c

Modified: team/group/pimp_my_sip/channels/chan_gulp.c
URL: http://svnview.digium.com/svn/asterisk/team/group/pimp_my_sip/channels/chan_gulp.c?view=diff&rev=385684&r1=385683&r2=385684
==============================================================================
--- team/group/pimp_my_sip/channels/chan_gulp.c (original)
+++ team/group/pimp_my_sip/channels/chan_gulp.c Mon Apr 15 09:40:11 2013
@@ -861,10 +861,10 @@
 	pjsip_tx_data *packet;
 
 	if (pjsip_inv_invite(session->inv_session, &packet) != PJ_SUCCESS) {
-		return -1;
-	}
-
-	ast_sip_session_send_request(session, packet);
+		ast_queue_hangup(session->channel);
+	} else {
+		ast_sip_session_send_request(session, packet);
+	}
 
 	ao2_ref(session, -1);
 	return 0;
@@ -877,7 +877,7 @@
 	struct ast_sip_session *session = pvt->session;
 
 	ao2_ref(session, +1);
-	if (ast_sip_push_task_synchronous(session->serializer, call, session)) {
+	if (ast_sip_push_task(session->serializer, call, session)) {
 		ast_log(LOG_WARNING, "Error attempting to place outbound call to call '%s'\n", dest);
 		ao2_cleanup(session);
 		return -1;




More information about the asterisk-commits mailing list