]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Merged revisions 163254 via svnmerge from
authorRussell Bryant <russell@russellbryant.com>
Thu, 11 Dec 2008 21:49:13 +0000 (21:49 +0000)
committerRussell Bryant <russell@russellbryant.com>
Thu, 11 Dec 2008 21:49:13 +0000 (21:49 +0000)
https://origsvn.digium.com/svn/asterisk/trunk

................
r163254 | russell | 2008-12-11 15:48:08 -0600 (Thu, 11 Dec 2008) | 16 lines

Merged revisions 163253 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r163253 | russell | 2008-12-11 15:46:29 -0600 (Thu, 11 Dec 2008) | 8 lines

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.6.0@163255 65c4cc65-6c06-0410-ace0-fbb531ad65f3

funcs/func_cut.c
funcs/func_strings.c

index 96779b661c09dbc03ee0f51e3fe030f17776bd33..231729ddf46e733d894c4b9d74dafa3041cff18c 100644 (file)
@@ -227,9 +227,6 @@ static int acf_cut_exec(struct ast_channel *chan, const char *cmd, char *data, c
 {
        int ret = -1;
 
-       if (chan)
-               ast_autoservice_start(chan);
-
        switch (cut_internal(chan, data, buf, len)) {
        case ERROR_NOARG:
                ast_log(LOG_ERROR, "Syntax: CUT(<varname>,<char-delim>,<range-spec>) - missing argument!\n");
@@ -247,9 +244,6 @@ static int acf_cut_exec(struct ast_channel *chan, const char *cmd, char *data, c
                ast_log(LOG_ERROR, "Unknown internal error\n");
        }
 
-       if (chan)
-               ast_autoservice_stop(chan);
-
        return ret;
 }
 
index 6cf00731e7c39b341683355788e73ffd781b2951..c400bcb36c2e3bda2c0a81fb10715e5d18c96497 100644 (file)
@@ -51,9 +51,6 @@ static int function_fieldqty(struct ast_channel *chan, const char *cmd,
        char delim[2] = "";
        size_t delim_used;
 
-       if (chan)
-               ast_autoservice_start(chan);
-
        AST_STANDARD_APP_ARGS(args, parse);
        if (args.delim) {
                ast_get_encoded_char(args.delim, delim, &delim_used);
@@ -73,9 +70,6 @@ static int function_fieldqty(struct ast_channel *chan, const char *cmd,
        }
        snprintf(buf, len, "%d", fieldcount);
 
-       if (chan)
-               ast_autoservice_stop(chan);
-
        return 0;
 }
 
@@ -255,9 +249,6 @@ static int array(struct ast_channel *chan, const char *cmd, char *var,
        if (!var || !value2)
                return -1;
 
-       if (chan)
-               ast_autoservice_start(chan);
-
        if (!strcmp(cmd, "HASH")) {
                const char *var2 = pbx_builtin_getvar_helper(chan, "~ODBCFIELDS~");
                origvar = var;
@@ -304,9 +295,6 @@ static int array(struct ast_channel *chan, const char *cmd, char *var,
                }
        }
 
-       if (chan)
-               ast_autoservice_stop(chan);
-
        return 0;
 }
 
@@ -748,11 +736,7 @@ static int function_eval(struct ast_channel *chan, const 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;
 }