Merged revisions 333786 via svnmerge from

https://origsvn.digium.com/svn/asterisk/branches/10

................
  r333786 | rmudgett | 2011-08-29 16:12:29 -0500 (Mon, 29 Aug 2011) | 13 lines
  
  Merged revisions 333784-333785 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.8
  
  ........
    r333784 | rmudgett | 2011-08-29 16:05:43 -0500 (Mon, 29 Aug 2011) | 2 lines
    
    Fix deadlock potential of chan_mobile.c:mbl_ast_hangup().
  ........
    r333785 | rmudgett | 2011-08-29 16:06:16 -0500 (Mon, 29 Aug 2011) | 1 line
    
    Add some do not hold locks notes to channel.h
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@333789 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Richard Mudgett
2011-08-29 21:17:51 +00:00
parent 7067bb8b42
commit d9526bc6c8
2 changed files with 20 additions and 15 deletions

View File

@@ -1318,21 +1318,10 @@ static int mbl_queue_hangup(struct mbl_pvt *pvt)
static int mbl_ast_hangup(struct mbl_pvt *pvt)
{
int res = 0;
for (;;) {
if (pvt->owner) {
if (ast_channel_trylock(pvt->owner)) {
DEADLOCK_AVOIDANCE(&pvt->lock);
} else {
res = ast_hangup(pvt->owner);
/* no need to unlock, ast_hangup() frees the
* channel */
break;
}
} else
break;
if (pvt->owner) {
ast_hangup(pvt->owner);
}
return res;
return 0;
}
/*!