Mercurial > hg > nginx
changeset 4506:14f8e8a0cc77 stable-1.0
Merge of r4460: ngx_ncpu detection for most *nix platforms.
This inaccurate detection by using sysconf(_SC_NPROCESSORS_ONLN) can improve
usage of the mutex lock optimization on multicore systems.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Mon, 05 Mar 2012 12:10:09 +0000 |
parents | 7150b4325a25 |
children | e66122a62bde |
files | auto/unix src/os/unix/ngx_posix_init.c |
diffstat | 2 files changed, 16 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/auto/unix Mon Mar 05 11:47:25 2012 +0000 +++ b/auto/unix Mon Mar 05 12:10:09 2012 +0000 @@ -707,3 +707,13 @@ 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
--- a/src/os/unix/ngx_posix_init.c Mon Mar 05 11:47:25 2012 +0000 +++ b/src/os/unix/ngx_posix_init.c Mon Mar 05 12:10:09 2012 +0000 @@ -47,7 +47,13 @@ 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; }