[Asterisk-cvs] asterisk pbx.c,1.112,1.113

markster at lists.digium.com markster at lists.digium.com
Mon Apr 19 18:56:43 CDT 2004


Update of /usr/cvsroot/asterisk
In directory mongoose.digium.com:/tmp/cvs-serv7104

Modified Files:
	pbx.c 
Log Message:
Hold the lock properly on async goto now that we have recursive mutex support.


Index: pbx.c
===================================================================
RCS file: /usr/cvsroot/asterisk/pbx.c,v
retrieving revision 1.112
retrieving revision 1.113
diff -u -d -r1.112 -r1.113
--- pbx.c	18 Apr 2004 05:50:55 -0000	1.112
+++ pbx.c	19 Apr 2004 23:00:50 -0000	1.113
@@ -3530,7 +3530,6 @@
 		if (priority)
 			chan->priority = priority - 1;
 		ast_softhangup_nolock(chan, AST_SOFTHANGUP_ASYNCGOTO);
-		ast_mutex_unlock(&chan->lock);
 	} else {
 		/* In order to do it when the channel doesn't really exist within
 		   the PBX, we have to make a new channel, masquerade, and start the PBX
@@ -3560,8 +3559,6 @@
 			/* Masquerade into temp channel */
 			ast_channel_masquerade(tmpchan, chan);
 		
-			ast_mutex_unlock(&chan->lock);
-
 			/* Grab the locks and get going */
 			ast_mutex_lock(&tmpchan->lock);
 			ast_do_masquerade(tmpchan);
@@ -3574,9 +3571,9 @@
 			}
 		} else {
 			res = -1;
-			ast_mutex_unlock(&chan->lock);
 		}
 	}
+	ast_mutex_unlock(&chan->lock);
 	return res;
 }
 




More information about the svn-commits mailing list