pigeon/core/src/thread_util.h

26 lines
644 B
C

#ifndef THREAD_UTIL_H
#define THREAD_UTIL_H
#include <stdint.h>
// Method return count of physical cores in system
#if defined(_WIN32) || defined(_WIN64)
#include <windows.h>
size_t get_core_count(void) {
SYSTEM_INFO sys_info;
GetSystemInfo(&sys_info);
return (size_t)sys_info.dwNumberOfProcessors;
}
#elif defined(__unix__) || defined(__unix) || \
(defined(__APPLE__) && defined(__MACH__))
#include <unistd.h>
size_t get_core_count(void) { return (size_t)sysconf(_SC_NPROCESSORS_ONLN); }
#else
#error "Get core count feature not realised for current platform."
#endif
#endif // !THREAD_UTIL_H