this seems to work for OSX, and improved linux version with fallback.
This commit is contained in:
@@ -866,9 +866,18 @@ int num_CPUs(void) {
|
|||||||
SYSTEM_INFO sysinfo;
|
SYSTEM_INFO sysinfo;
|
||||||
GetSystemInfo(&sysinfo);
|
GetSystemInfo(&sysinfo);
|
||||||
return sysinfo.dwNumberOfProcessors;
|
return sysinfo.dwNumberOfProcessors;
|
||||||
#elif defined(__linux__) || defined(__APPLE__)
|
#elif defined(__linux__) && defined(_SC_NPROCESSORS_ONLN)
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
return sysconf(_SC_NPROCESSORS_ONLN);
|
int count = sysconf(_SC_NPROCESSORS_ONLN);
|
||||||
|
if (count <= 0)
|
||||||
|
count = 1;
|
||||||
|
return count;
|
||||||
|
#elif defined(__APPLE__)
|
||||||
|
#include "sys/sysctl.h"
|
||||||
|
uint32 logicalcores = 0;
|
||||||
|
size_t size = sizeof( logicalcores );
|
||||||
|
sysctlbyname( "hw.logicalcpu", &logicalcores, &size, NULL, 0 );
|
||||||
|
return logicalcores;
|
||||||
#else
|
#else
|
||||||
return 1;
|
return 1;
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user