mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-06 12:36:58 +00:00
Fix some observed slowdowns in dialplan processing.
The change is to remove autoservice usage from dialplan functions that do not need it because they do not perform operations that potentially block. (closes issue #13940) Reported by: tbelder git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@163253 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -53,9 +53,6 @@ static int function_fieldqty(struct ast_channel *chan, char *cmd,
|
||||
AST_APP_ARG(delim);
|
||||
);
|
||||
|
||||
if (chan)
|
||||
ast_autoservice_start(chan);
|
||||
|
||||
AST_STANDARD_APP_ARGS(args, parse);
|
||||
if (args.delim) {
|
||||
varsubst = alloca(strlen(args.varname) + 4);
|
||||
@@ -73,9 +70,6 @@ static int function_fieldqty(struct ast_channel *chan, char *cmd,
|
||||
}
|
||||
snprintf(buf, len, "%d", fieldcount);
|
||||
|
||||
if (chan)
|
||||
ast_autoservice_stop(chan);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -184,9 +178,6 @@ static int array(struct ast_channel *chan, char *cmd, char *var,
|
||||
if (!var || !value2)
|
||||
return -1;
|
||||
|
||||
if (chan)
|
||||
ast_autoservice_start(chan);
|
||||
|
||||
/* The functions this will generally be used with are SORT and ODBC_*, which
|
||||
* both return comma-delimited lists. However, if somebody uses literal lists,
|
||||
* their commas will be translated to vertical bars by the load, and I don't
|
||||
@@ -218,9 +209,6 @@ static int array(struct ast_channel *chan, char *cmd, char *var,
|
||||
}
|
||||
}
|
||||
|
||||
if (chan)
|
||||
ast_autoservice_stop(chan);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -543,11 +531,7 @@ static int function_eval(struct ast_channel *chan, char *cmd, char *data,
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (chan)
|
||||
ast_autoservice_start(chan);
|
||||
pbx_substitute_variables_helper(chan, data, buf, len - 1);
|
||||
if (chan)
|
||||
ast_autoservice_stop(chan);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user