From 38e4e8d80c713f88ae3e52bfb371303387b56d11 Mon Sep 17 00:00:00 2001
From: "Colin J. Brigato" <colin@brigato.fr>
Date: Mon, 5 Aug 2019 00:27:15 +0200
Subject: [PATCH] FIXes OSX > 10.4 num_Cpus() the good and posix way
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

sysconf() is  part of IEEE Std 1003.1-1988 (POSIX.1).
Fortunately, it *is* available to OSX `>=10.5`.
At least on `~10.14`, the old unposix `sysctl` osx way was lost, at least in portable environments.
This fixes it, but will not be compatible with OSX > 10.4.
So i'm sorry but here we loose compatibility with Macs olders than 2005. (🤣)
---
 client/util.c | 16 ++--------------
 1 file changed, 2 insertions(+), 14 deletions(-)

diff --git a/client/util.c b/client/util.c
index f6f89e0ff..3bb0a96fa 100644
--- a/client/util.c
+++ b/client/util.c
@@ -9,7 +9,7 @@
 //-----------------------------------------------------------------------------
 
 // ensure gmtime_r is available even with -std=c99; must be included before
-#if !defined(_WIN32)
+#if !defined(_WIN32) && !defined(__APPLE__)
 #define _POSIX_C_SOURCE 200112L
 #endif
 
@@ -807,24 +807,12 @@ int num_CPUs(void) {
     SYSTEM_INFO sysinfo;
     GetSystemInfo(&sysinfo);
     return sysinfo.dwNumberOfProcessors;
-#elif defined(__linux__) && defined(_SC_NPROCESSORS_ONLN)
+#else
 #include <unistd.h>
     int count = sysconf(_SC_NPROCESSORS_ONLN);
     if (count <= 0)
         count = 1;
     return count;
-#elif defined(__APPLE__)
-    /*
-       TODO ICEMAN 2019, its commented out until someone finds a better solution
-#include "sys/sysctl.h"
-        uint32_t logicalcores = 0;
-        size_t size = sizeof( logicalcores );
-        sysctlbyname( "hw.logicalcpu", &logicalcores, &size, NULL, 0 );
-        return logicalcores;
-        */
-    return 1;
-#else
-    return 1;
 #endif
 }