This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: implementation of std::thread::hardware_concurrency()


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]