From: Russell Bryant Date: Wed, 19 Sep 2007 19:50:48 +0000 (+0000) Subject: The System() and TrySystem() applications can take a substantial amount of X-Git-Tag: 1.4.12~50 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=47dc1101eba4b538b1c8c7f033ab96cd1f6af7dd;p=thirdparty%2Fasterisk.git The System() and TrySystem() applications can take a substantial amount of time to execute while not servicing the channel. So, put the channel in autoservice while the command is being executed. (closes issue #10726, reported by mnicholson) git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@83179 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/apps/app_system.c b/apps/app_system.c index 4bada66b23..b60e11c5a2 100644 --- a/apps/app_system.c +++ b/apps/app_system.c @@ -95,6 +95,8 @@ static int system_exec_helper(struct ast_channel *chan, void *data, int failmode u = ast_module_user_add(chan); + ast_autoservice_start(chan); + /* Do our thing here */ res = ast_safe_system((char *)data); if ((res < 0) && (errno != ECHILD)) { @@ -118,6 +120,8 @@ static int system_exec_helper(struct ast_channel *chan, void *data, int failmode res = 0; } + ast_autoservice_stop(chan); + ast_module_user_remove(u); return res;