[asterisk-commits] russell: branch 1.4 r288339 - /branches/1.4/main/asterisk.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Wed Sep 22 11:39:21 CDT 2010


Author: russell
Date: Wed Sep 22 11:39:16 2010
New Revision: 288339

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=288339
Log:
Fix a 100% CPU consumption problem when setting console=yes in asterisk.conf.

The handling of -c and console=yes should be the same, but they were not.
When you specify -c, it sets both a flag for console module and for asterisk
not to fork() off into the background.  The handling of console=yes only set
console mode, so you would end up with a background process() trying to run
the Asterisk console and freaking out since it didn't have anything to read
input from.

Thanks to beagles for reporting and helping debug the problem!

Modified:
    branches/1.4/main/asterisk.c

Modified: branches/1.4/main/asterisk.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.4/main/asterisk.c?view=diff&rev=288339&r1=288338&r2=288339
==============================================================================
--- branches/1.4/main/asterisk.c (original)
+++ branches/1.4/main/asterisk.c Wed Sep 22 11:39:16 2010
@@ -2625,7 +2625,7 @@
 			ast_set2_flag(&ast_options, ast_true(v->value), AST_OPT_FLAG_QUIET);
 		/* Run as console (-c at startup, implies nofork) */
 		} else if (!strcasecmp(v->name, "console")) {
-			ast_set2_flag(&ast_options, ast_true(v->value), AST_OPT_FLAG_CONSOLE);
+			ast_set2_flag(&ast_options, ast_true(v->value), AST_OPT_FLAG_NO_FORK | AST_OPT_FLAG_CONSOLE);
 		/* Run with high priority if the O/S permits (-p at startup) */
 		} else if (!strcasecmp(v->name, "highpriority")) {
 			ast_set2_flag(&ast_options, ast_true(v->value), AST_OPT_FLAG_HIGH_PRIORITY);




More information about the asterisk-commits mailing list