mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-05 12:16:00 +00:00
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
This commit is contained in:
@@ -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;
|
||||
|
Reference in New Issue
Block a user