mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-12 15:45:18 +00:00
Fix locking issue (bug #4041)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5481 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
3
pbx.c
3
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);
|
ast_verbose(VERBOSE_PREFIX_4 "Channel %s was answered.\n", chan->name);
|
||||||
|
|
||||||
if (sync > 1) {
|
if (sync > 1) {
|
||||||
|
ast_mutex_unlock(&chan->lock);
|
||||||
if (ast_pbx_run(chan)) {
|
if (ast_pbx_run(chan)) {
|
||||||
ast_log(LOG_ERROR, "Unable to run PBX on %s\n", chan->name);
|
ast_log(LOG_ERROR, "Unable to run PBX on %s\n", chan->name);
|
||||||
ast_hangup(chan);
|
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);
|
strncpy(tmp->data, appdata, sizeof(tmp->data) - 1);
|
||||||
tmp->chan = chan;
|
tmp->chan = chan;
|
||||||
if (sync > 1) {
|
if (sync > 1) {
|
||||||
|
if (locked_channel)
|
||||||
|
ast_mutex_unlock(&chan->lock);
|
||||||
ast_pbx_run_app(tmp);
|
ast_pbx_run_app(tmp);
|
||||||
} else {
|
} else {
|
||||||
pthread_attr_init(&attr);
|
pthread_attr_init(&attr);
|
||||||
|
Reference in New Issue
Block a user