From 3db76e85a49901a2049ec3d430685d5c32f7aeba Mon Sep 17 00:00:00 2001 From: tilghman Date: Thu, 29 May 2008 17:35:19 +0000 Subject: Merged revisions 118953 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r118953 | tilghman | 2008-05-29 12:20:16 -0500 (Thu, 29 May 2008) | 3 lines Add some debugging code that ensures that when we do deadlock avoidance, we don't lose the information about how a lock was originally acquired. ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@118955 f38db490-d61c-443f-a65b-d21fe96a405b --- channels/chan_agent.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'channels/chan_agent.c') diff --git a/channels/chan_agent.c b/channels/chan_agent.c index decf022c4..8d22eadf9 100644 --- a/channels/chan_agent.c +++ b/channels/chan_agent.c @@ -1520,9 +1520,7 @@ static int agent_logoff(const char *agent, int soft) ast_mutex_lock(&p->lock); while (p->owner && ast_channel_trylock(p->owner)) { - ast_mutex_unlock(&p->lock); - usleep(1); - ast_mutex_lock(&p->lock); + DEADLOCK_AVOIDANCE(&p->lock); } if (p->owner) { ast_softhangup(p->owner, AST_SOFTHANGUP_EXPLICIT); @@ -1530,9 +1528,7 @@ static int agent_logoff(const char *agent, int soft) } while (p->chan && ast_channel_trylock(p->chan)) { - ast_mutex_unlock(&p->lock); - usleep(1); - ast_mutex_lock(&p->lock); + DEADLOCK_AVOIDANCE(&p->lock); } if (p->chan) { ast_softhangup(p->chan, AST_SOFTHANGUP_EXPLICIT); -- cgit v1.2.3