diff options
| author | David Chisnall <theraven@FreeBSD.org> | 2013-02-07 13:09:19 +0000 |
|---|---|---|
| committer | David Chisnall <theraven@FreeBSD.org> | 2013-02-07 13:09:19 +0000 |
| commit | c7f918d0681828afdbddfdcc354b6f3dfc2a7b68 (patch) | |
| tree | d1f057460d329356b56f67bf5740b7393c925844 /src/thread.cpp | |
| parent | fbd326037ffe8b31f74ce56deb05b6432b26665c (diff) | |
Diffstat (limited to 'src/thread.cpp')
| -rw-r--r-- | src/thread.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/thread.cpp b/src/thread.cpp index 8747adf0b5958..b2bd07e9d3ba9 100644 --- a/src/thread.cpp +++ b/src/thread.cpp @@ -67,8 +67,10 @@ thread::hardware_concurrency() _NOEXCEPT return n; #elif defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE >= 200112L) && defined(_SC_NPROCESSORS_ONLN) long result = sysconf(_SC_NPROCESSORS_ONLN); - if (result < 0 || result > UINT_MAX) - result = 0; + // sysconf returns -1 if the name is invalid, the option does not exist or + // does not have a definite limit. + if (result == -1) + return 0; return result; #else // defined(CTL_HW) && defined(HW_NCPU) // TODO: grovel through /proc or check cpuid on x86 and similar |
