From 86dda4048a8de440e3911b08e8ca4f6da519d682 Mon Sep 17 00:00:00 2001 From: Andreas Eversberg Date: Wed, 7 Jul 2010 09:14:21 +0200 Subject: [PATCH] Another "trylock" test. --- chan_lcr.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/chan_lcr.c b/chan_lcr.c index 5968733..53c814f 100644 --- a/chan_lcr.c +++ b/chan_lcr.c @@ -1687,16 +1687,21 @@ static void handle_queue() struct ast_frame fr; char *p; +again: call = call_first; while(call) { p = call->queue_string; ast = call->ast; if (*p && ast) { lock_debug("A1+"); - while (ast_channel_trylock(ast)) { + if (ast_channel_trylock(ast)) { lock_debug(""); + ast_mutex_unlock(&log_lock); usleep(1000); lock_debug("A1++"); + ast_mutex_lock(&log_lock); + lock_debug("A1+-"); + goto again; } lock_debug("A1-"); while(*p) { -- 2.13.6