On 7 November 2011 14:16, Jonathan Wakely wrote: > On 7 November 2011 14:10, Iain Sandoe wrote: >> >> On 7 Nov 2011, at 13:45, Jonathan Wakely wrote: >> >>> This provides a working thread::hardware_concurrency on platforms that >>> support pthread_num_processors_np or the "hw.ncpu" sysctl, but by >>> testing for the features in configure rather than hardcoding OS macro >>> tests in thread.cc >> >> if the system supports run-time User-controllable core-count then this will >> not account for that. > > Yep. Do you know how to detect the right value in that case? If not > the alternative is to revert to the previous behaviour of returning > zero. > > (My understanding was that at least some of the options would work for > that case, NPROCESSORS_ONLN is distinct from _SC_NPROCESSORS_CONF, for > example)
... which might be a reason to prefer sysconf to sysctl if the latter doesn't handle disabled cores (NetBSD supports both, but I found the sysctl to be slightly faster, so ordered the checks to prefer sysctl) Pretty much the only docs I have to go on for this are glibc's http://www.gnu.org/s/hello/manual/libc/Processor-Resources.html so I know disabled cores are accounted for correctly on GNU systems. If people care about other platforms they need to provide working code, or at least point me at decent documentation.