Don't hold the outgoing lock for a prolonged period of time as it may block the origi...
authorJoshua Colp <jcolp@digium.com>
Sun, 19 May 2013 02:21:44 +0000 (02:21 +0000)
committerJoshua Colp <jcolp@digium.com>
Sun, 19 May 2013 02:21:44 +0000 (02:21 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@389132 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/pbx.c

index 18778fa..e00ba70 100644 (file)
@@ -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);