diff options
author | Junio C Hamano <gitster@pobox.com> | 2015-03-20 13:11:49 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-03-20 13:11:49 -0700 |
commit | 551fc7aec1a7efe868a59fbeea14582b41923f4d (patch) | |
tree | d61c1f84583a496e2a4276c840fe4a8b867f9487 /thread-utils.c | |
parent | ec0465ade87996214959a393239eec520daf92ea (diff) | |
parent | a25b5a32c76630f2433b860fef7bc28a9380a8f6 (diff) | |
download | git-551fc7aec1a7efe868a59fbeea14582b41923f4d.tar.gz |
Merge branch 'km/bsd-sysctl'
We now detect number of CPUs on older BSD-derived systems.
* km/bsd-sysctl:
thread-utils.c: detect CPU count on older BSD-like systems
configure: support HAVE_BSD_SYSCTL option
Diffstat (limited to 'thread-utils.c')
-rw-r--r-- | thread-utils.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/thread-utils.c b/thread-utils.c index 97396a75ae..a2135e0743 100644 --- a/thread-utils.c +++ b/thread-utils.c @@ -35,7 +35,23 @@ int online_cpus(void) if (!pstat_getdynamic(&psd, sizeof(psd), (size_t)1, 0)) return (int)psd.psd_proc_cnt; -#endif +#elif defined(HAVE_BSD_SYSCTL) && defined(HW_NCPU) + int mib[2]; + size_t len; + int cpucount; + + mib[0] = CTL_HW; +# ifdef HW_AVAILCPU + mib[1] = HW_AVAILCPU; + len = sizeof(cpucount); + if (!sysctl(mib, 2, &cpucount, &len, NULL, 0)) + return cpucount; +# endif /* HW_AVAILCPU */ + mib[1] = HW_NCPU; + len = sizeof(cpucount); + if (!sysctl(mib, 2, &cpucount, &len, NULL, 0)) + return cpucount; +#endif /* defined(HAVE_BSD_SYSCTL) && defined(HW_NCPU) */ #ifdef _SC_NPROCESSORS_ONLN if ((ncpus = (long)sysconf(_SC_NPROCESSORS_ONLN)) > 0) |