]> git.kaiwu.me - nginx.git/commitdiff
Merge of r4460: ngx_ncpu detection for most *nix platforms.
authorMaxim Dounin <mdounin@mdounin.ru>
Mon, 5 Mar 2012 12:10:09 +0000 (12:10 +0000)
committerMaxim Dounin <mdounin@mdounin.ru>
Mon, 5 Mar 2012 12:10:09 +0000 (12:10 +0000)
This inaccurate detection by using sysconf(_SC_NPROCESSORS_ONLN) can improve
usage of the mutex lock optimization on multicore systems.

auto/unix
src/os/unix/ngx_posix_init.c

index 4988072f1ff3c64ff0a0e213699ff60c0cad630c..78f82593d2f0d95b11d86f6b035e2e1d3786e6b8 100755 (executable)
--- a/auto/unix
+++ b/auto/unix
@@ -707,3 +707,13 @@ ngx_feature_path=
 ngx_feature_libs=
 ngx_feature_test="struct dirent  dir; dir.d_type = DT_REG"
 . auto/feature
+
+
+ngx_feature="sysconf(_SC_NPROCESSORS_ONLN)"
+ngx_feature_name="NGX_HAVE_SC_NPROCESSORS_ONLN"
+ngx_feature_run=no
+ngx_feature_incs=
+ngx_feature_path=
+ngx_feature_libs=
+ngx_feature_test="sysconf(_SC_NPROCESSORS_ONLN)"
+. auto/feature
index 02642bd7ccf28bbda04e651754bbbd7197e20ff0..eea65a9034e3038a34ab8af5c009b387d95adc46 100644 (file)
@@ -47,7 +47,13 @@ ngx_os_init(ngx_log_t *log)
 
     for (n = ngx_pagesize; n >>= 1; ngx_pagesize_shift++) { /* void */ }
 
+#if (NGX_HAVE_SC_NPROCESSORS_ONLN)
     if (ngx_ncpu == 0) {
+        ngx_ncpu = sysconf(_SC_NPROCESSORS_ONLN);
+    }
+#endif
+
+    if (ngx_ncpu < 1) {
         ngx_ncpu = 1;
     }