From: Mark Spencer Date: Mon, 14 Jul 2003 03:45:53 +0000 (+0000) Subject: instead of hanging up channel after masquerade (risking deadlock), mark it as a zombi... X-Git-Tag: 0.5.0~316 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4e6c02b6add240cbc12785e5187f6b7d73ee2f41;p=thirdparty%2Fasterisk.git instead of hanging up channel after masquerade (risking deadlock), mark it as a zombie, then masquerade git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1180 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channels/chan_agent.c b/channels/chan_agent.c index 4d9b2d5518..e6c82d0190 100755 --- a/channels/chan_agent.c +++ b/channels/chan_agent.c @@ -632,9 +632,11 @@ static int check_availability(struct agent_pvt *newlyavailable, int needlock) if (p->abouttograb) { ast_setstate(parent, AST_STATE_UP); ast_setstate(chan, AST_STATE_UP); + /* Go ahead and mark the channel as a zombie so that masquerade will + destroy it for us, and we need not call ast_hangup */ + chan->zombie = 1; ast_channel_masquerade(parent, chan); p->abouttograb = 0; - ast_hangup(chan); } else { ast_log(LOG_DEBUG, "Sneaky, parent disappeared in the mean time...\n"); agent_cleanup(newlyavailable);