From: Mark Spencer Date: Sun, 17 Apr 2005 03:44:19 +0000 (+0000) Subject: Fix locking issue (bug #4041) X-Git-Tag: 1.2.0-beta1~836 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d3213d7f479eb9da58257c8d52e320301f637583;p=thirdparty%2Fasterisk.git Fix locking issue (bug #4041) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5481 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/pbx.c b/pbx.c index 490c034e2a..800826887c 100755 --- a/pbx.c +++ b/pbx.c @@ -4891,6 +4891,7 @@ int ast_pbx_outgoing_exten(const char *type, int format, void *data, int timeout ast_verbose(VERBOSE_PREFIX_4 "Channel %s was answered.\n", chan->name); if (sync > 1) { + ast_mutex_unlock(&chan->lock); if (ast_pbx_run(chan)) { ast_log(LOG_ERROR, "Unable to run PBX on %s\n", chan->name); ast_hangup(chan); @@ -5061,6 +5062,8 @@ int ast_pbx_outgoing_app(const char *type, int format, void *data, int timeout, strncpy(tmp->data, appdata, sizeof(tmp->data) - 1); tmp->chan = chan; if (sync > 1) { + if (locked_channel) + ast_mutex_unlock(&chan->lock); ast_pbx_run_app(tmp); } else { pthread_attr_init(&attr);