From: Tilghman Lesher Date: Wed, 25 Jun 2008 00:46:24 +0000 (+0000) Subject: Pvt deadlock causes some channels to get stuck in Reserved status. X-Git-Tag: 1.4.22-rc1~183 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5f4939828b19784fd7c67fe02e1c62d899e91459;p=thirdparty%2Fasterisk.git Pvt deadlock causes some channels to get stuck in Reserved status. (closes issue #12621) Reported by: fabianoheringer Patches: 20080612__bug12621.diff.txt uploaded by Corydon76 (license 14) Tested by: fabianoheringer git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@124965 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c index 49f9d3e711..d14a3bd03e 100644 --- a/channels/chan_dahdi.c +++ b/channels/chan_dahdi.c @@ -4637,10 +4637,11 @@ static struct ast_frame *dahdi_read(struct ast_channel *ast) int index; void *readbuf; struct ast_frame *f; - - ast_mutex_lock(&p->lock); - + while (ast_mutex_trylock(&p->lock)) { + DEADLOCK_AVOIDANCE(&ast->lock); + } + index = dahdi_get_index(ast, p, 0); /* Hang up if we don't really exist */