]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Autoservice loop optimization causes a busy loop, when channels are serviced while...
authorTilghman Lesher <tilghman@meg.abyt.es>
Fri, 2 Jul 2010 17:09:47 +0000 (17:09 +0000)
committerTilghman Lesher <tilghman@meg.abyt.es>
Fri, 2 Jul 2010 17:09:47 +0000 (17:09 +0000)
(closes issue #17564)
 Reported by: ramonpeek
 Patches:
       20100630__issue17564.diff.txt uploaded by tilghman (license 14)
 Tested by: ramonpeek

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@273717 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/autoservice.c

index e82998a44f7f966103d862a31c42d14650dcbb9a..e5f1837351ca93b827cffd2479b1108269384fa3 100644 (file)
@@ -115,6 +115,11 @@ static void *autoservice_run(void *ign)
                AST_LIST_UNLOCK(&aslist);
 
                if (!x) {
+                       /* If we don't sleep, this becomes a busy loop, which causes
+                        * problems when Asterisk runs at a different priority than other
+                        * user processes.  As long as we check for new channels at least
+                        * once every 10ms, we should be fine. */
+                       usleep(10000);
                        continue;
                }