From 7dd14d03b069965c9577869841ce5646da7b7081 Mon Sep 17 00:00:00 2001 From: Baptiste Daroussin Date: Sat, 15 Apr 2017 16:25:08 +0200 Subject: [PATCH] Enable multithreading on BSD --- programs/util.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/programs/util.h b/programs/util.h index b989e823..5f437b2b 100644 --- a/programs/util.h +++ b/programs/util.h @@ -657,6 +657,24 @@ failed: } } +#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) + +/* Use apple-provided syscall + * see: man 3 sysctl */ +UTIL_STATIC int UTIL_countPhysicalCores(void) +{ + static int numPhysicalCores = 0; + + if (numPhysicalCores != 0) return numPhysicalCores; + + numPhysicalCores = (int)sysconf(_SC_NPROCESSORS_ONLN); + if (numPhysicalCores == -1) { + /* value not queryable, fall back on 1 */ + return numPhysicalCores = 1; + } + return numPhysicalCores; +} + #else UTIL_STATIC int UTIL_countPhysicalCores(void)