-static int get_n_cpus(void)
-{
- int result;
- static int n_cpus = 0;
-
- if(!n_cpus) {
- /* On Linux, when some processors are offline
- * _SC_NPROCESSORS_CONF counts the offline
- * processors, whereas _SC_NPROCESSORS_ONLN
- * does not. If we used _SC_NPROCESSORS_ONLN,
- * getcpu() could return a value greater than
- * this sysconf, in which case the arrays
- * indexed by processor would overflow.
- */
- result = sysconf(_SC_NPROCESSORS_CONF);
- if(result == -1) {
- return -1;
- }
-
- n_cpus = result;
- }
-
- return n_cpus;
-}
-