From b46840ae3e71f793971f83e5625cd7cded769f13 Mon Sep 17 00:00:00 2001
From: Joshua Colp <jcolp@digium.com>
Date: Sun, 19 May 2013 02:21:44 +0000
Subject: [PATCH] Don't hold the outgoing lock for a prolonged period of time
 as it may block the originator.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@389132 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 main/pbx.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/main/pbx.c b/main/pbx.c
index 18778fac76..e00ba70b18 100644
--- a/main/pbx.c
+++ b/main/pbx.c
@@ -9977,7 +9977,6 @@ static void *pbx_outgoing_exec(void *data)
 		return NULL;
 	}
 
-	ast_mutex_lock(&outgoing->lock);
 	if (!ast_strlen_zero(outgoing->app)) {
 		struct ast_app *app = pbx_findapp(outgoing->app);
 
@@ -10012,6 +10011,7 @@ static void *pbx_outgoing_exec(void *data)
 	}
 
 	/* Notify anyone else again that may be interested that execution is complete */
+	ast_mutex_lock(&outgoing->lock);
 	outgoing->executed = 1;
 	ast_cond_signal(&outgoing->cond);
 	ast_mutex_unlock(&outgoing->lock);
-- 
GitLab