diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/common/writer/init.c | 14 | 
1 files changed, 9 insertions, 5 deletions
| diff --git a/lib/common/writer/init.c b/lib/common/writer/init.c index 06726ce..7940c3f 100644 --- a/lib/common/writer/init.c +++ b/lib/common/writer/init.c @@ -10,16 +10,20 @@  #include <string.h>  #include <stdlib.h> +#include <unistd.h> -#ifdef HAVE_SYS_SYSINFO_H -#include <sys/sysinfo.h> +#ifdef HAVE_SCHED_GETAFFINITY +#include <sched.h>  static size_t os_get_num_jobs(void)  { -	int nprocs; +	cpu_set_t cpu_set; +	CPU_ZERO(&cpu_set); -	nprocs = get_nprocs_conf(); -	return nprocs < 1 ? 1 : nprocs; +	if (sched_getaffinity(0, sizeof cpu_set, &cpu_set) == -1) +		return 1; +	else +		return CPU_COUNT(&cpu_set);  }  #else  static size_t os_get_num_jobs(void) | 
