Merged revisions 79756 via svnmerge from
authorRussell Bryant <russell@russellbryant.com>
Thu, 16 Aug 2007 21:33:38 +0000 (21:33 +0000)
committerRussell Bryant <russell@russellbryant.com>
Thu, 16 Aug 2007 21:33:38 +0000 (21:33 +0000)
commit0b44b92cf5b93541cc871f3241bc92568f0296cc
tree54aa51316091b49557eb2cf3ddb28a74950646d7
parent95ed8b7931ead5cb67f778de6a8cf84a3c4d2406
Merged revisions 79756 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r79756 | russell | 2007-08-16 16:29:24 -0500 (Thu, 16 Aug 2007) | 11 lines

Fix more deadlocks in chan_iax2 that were introduced by making frame handling
and scheduling multi-threaded.  Unfortunately, we have to do some expensive
deadlock avoidance when queueing frames on to the ast_channel owner of the IAX2
pvt struct.  This was already handled for regular frames, but ast_queue_hangup
and ast_queue_control were still used directly.  Making these changes introduced
even more places where the IAX2 pvt struct can disappear in the context of a
function holding its lock due to calling a function that has to unlock/lock it
to avoid deadlocks.  I went through and fixed all of these places to account for
this possibility.
(issue #10362, patch by me)

........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@79764 65c4cc65-6c06-0410-ace0-fbb531ad65f3
channels/chan_iax2.c