Fix some potential deadlocks pointed out by helgrind.
authorRichard Mudgett <rmudgett@digium.com>
Tue, 11 Oct 2011 19:28:23 +0000 (19:28 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Tue, 11 Oct 2011 19:28:23 +0000 (19:28 +0000)
commitb63c1cc5456fb9f0a28fc4d99c46075334102280
tree1f76c1f09cab84ff18d3b1220d7cc0bf923154db
parent1ec8a9d896e9ce2da8ab38d64c2a9b36707145d5
Fix some potential deadlocks pointed out by helgrind.

* Fixed deadlock potential calling dialog_unlink_all() in
__sip_autodestruct().  Found by helgrind.

* Fixed deadlock potential in handle_request_invite() after calling
sip_new().  Found by helgrind.

* The sip_new() function now returns with the created channel already
locked.

* Removed the dead code that starts a PBX in in sip_new().  No sip_new()
callers caused that code to be executed and it was a bad thing to do
anyway.

* Removed unused parameters and return value from dialog_unlink_all().

* Made dialog_unlink_all() and __sip_autodestruct() safely obtain the
owner and private channel locks without a deadlock avoidance loop.
........

Merged revisions 340284 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 340310 from http://svn.asterisk.org/svn/asterisk/branches/10

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@340318 65c4cc65-6c06-0410-ace0-fbb531ad65f3
channels/chan_sip.c
channels/sip/include/dialog.h