]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
Enable multithreading on BSD 659/head
authorBaptiste Daroussin <bapt@FreeBSD.org>
Sat, 15 Apr 2017 14:25:08 +0000 (16:25 +0200)
committerBaptiste Daroussin <bapt@FreeBSD.org>
Sat, 15 Apr 2017 14:25:08 +0000 (16:25 +0200)
programs/util.h

index b989e8232a6edca165f8153299968767158446ba..5f437b2b268c441e821b3be8178293b22ce67797 100644 (file)
@@ -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)