diff options
author | Vsevolod Stakhov <vsevolod@rambler-co.ru> | 2009-02-11 17:39:04 +0300 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@rambler-co.ru> | 2009-02-11 17:39:04 +0300 |
commit | 54480f21f115b40e76806210a61bdde00d3842f7 (patch) | |
tree | f8e1aad8341c5190d4c73f66db117aa754147cee | |
parent | c07cd514e4ea635a59937cf703107ab075e92400 (diff) | |
download | rspamd-54480f21f115b40e76806210a61bdde00d3842f7.tar.gz rspamd-54480f21f115b40e76806210a61bdde00d3842f7.zip |
* By default number of workers is number of active processors in system
* Fix macro detection in configure system
-rwxr-xr-x | configure | 33 | ||||
-rw-r--r-- | src/cfg_utils.c | 7 |
2 files changed, 24 insertions, 16 deletions
@@ -265,11 +265,11 @@ check_function() check_include() { - INCLUDE="$1" - echo -n "Testing for $INCLUDE: " + _INCLUDE="$1" + echo -n "Testing for $_INCLUDE: " echo >> config.log - echo "Testing for $INCLUDE: " >> config.log - check_cache "include" "$INCLUDE" + echo "Testing for $_INCLUDE: " >> config.log + check_cache "include" "$_INCLUDE" if [ $? -eq 0 ] ; then echo "-> OK (cached)" echo "-> OK (cached)" >> config.log @@ -277,7 +277,7 @@ check_include() return 0 fi echo "#include <sys/types.h>" > autotest.c - echo "#include \"$INCLUDE\"" >> autotest.c + echo "#include \"$_INCLUDE\"" >> autotest.c echo "#include <stdlib.h>" >> autotest.c echo "int main (int argc, char **argv) { return 0; }" >> autotest.c echo "$GCC $CFLAGS $PTHREAD_CFLAGS -o autotest $LDFLAGS $LIBS $PTHREAD_LDFLAGS autotest.c" >>config.log @@ -285,9 +285,9 @@ check_include() if [ $? -eq 0 ] ; then echo "found" echo "-> OK" >> config.log - _CFLAG=`echo "$INCLUDE" | sed -e 's/[./]/_/g' | tr '[:lower:]' '[:upper:]'` + _CFLAG=`echo "$_INCLUDE" | sed -e 's/[./]/_/g' | tr '[:lower:]' '[:upper:]'` have_opt $_CFLAG - write_cache "include" "$INCLUDE" "yes" "$_CFLAG" + write_cache "include" "$_INCLUDE" "yes" "$_CFLAG" cleanup return 0 else @@ -295,7 +295,7 @@ check_include() echo "-> FAILED" >> config.log echo "Failed program was:" >> config.log cat autotest.c >> config.log - write_cache "include" "$INCLUDE" "no" "" + write_cache "include" "$_INCLUDE" "no" "" cleanup return 1 fi @@ -304,12 +304,13 @@ check_include() check_macro() { MACRO=$1 + _INCLUDE="" while [ $# -ne 1 -a -n $1 ] ; do shift - if [ "F$INCLUDE" = "F" ] ; then - INCLUDE="$1" + if [ "F$_INCLUDE" = "F" ] ; then + _INCLUDE="$1" else - INCLUDE="$INCLUDE $1" + _INCLUDE="$_INCLUDE $1" fi done echo -n "Testing for $MACRO: " @@ -322,10 +323,9 @@ check_macro() return 0 fi echo "#include <sys/types.h>" > autotest.c - for inc in $INCLUDE ; do - echo "#include \"$inc\"" >> autotest.c + for _inc in $_INCLUDE ; do + echo "#include \"$_inc\"" >> autotest.c done - echo "#include \"${INCLUDE}\"" >> autotest.c echo "#include <stdlib.h>" >> autotest.c echo "int main (int argc, char **argv) {" >>autotest.c echo "#ifndef $MACRO" >>autotest.c @@ -971,6 +971,11 @@ else fi fi +check_macro "_SC_NPROCESSORS_ONLN" "unistd.h" +if [ $? -eq 0 ] ; then + have_opt "SC_NPROCESSORS_ONLN" +fi + check_package "glib-2.0" "glib.h" check_package "gmime-2.0" "gmime/gmime.h" if [ $? -eq 1 ] ; then diff --git a/src/cfg_utils.c b/src/cfg_utils.c index 7e1e74b28..4616498cc 100644 --- a/src/cfg_utils.c +++ b/src/cfg_utils.c @@ -6,14 +6,13 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <unistd.h> #include <sys/un.h> #include <netinet/in.h> #include <arpa/inet.h> #include <syslog.h> #include <netdb.h> #include <math.h> -#include <netinet/in.h> -#include <arpa/inet.h> #include "config.h" #include "cfg_file.h" @@ -174,7 +173,11 @@ init_defaults (struct config_file *cfg) cfg->memcached_maxerrors = DEFAULT_UPSTREAM_MAXERRORS; cfg->memcached_protocol = TCP_TEXT; +#ifdef HAVE_SC_NPROCESSORS_ONLN + cfg->workers_number = sysconf (_SC_NPROCESSORS_ONLN); +#else cfg->workers_number = DEFAULT_WORKERS_NUM; +#endif cfg->max_statfile_size = DEFAULT_STATFILE_SIZE; cfg->modules_opts = g_hash_table_new (g_str_hash, g_str_equal); cfg->variables = g_hash_table_new (g_str_hash, g_str_equal); |