diff options
author | Marat Dukhan <maratek@gmail.com> | 2018-02-19 22:43:26 -0800 |
---|---|---|
committer | Marat Dukhan <maratek@gmail.com> | 2018-02-19 22:48:12 -0800 |
commit | b2fc4ab8099b802de934f24adf2da6e4c863bd3c (patch) | |
tree | e2e22022cc4d4d1de9eba0e6628f127e7e8806ee /src/init.c | |
parent | a9e55a6afde89722af7ee30dc7bd27435e96226b (diff) | |
download | cpuinfo-b2fc4ab8099b802de934f24adf2da6e4c863bd3c.tar.gz |
Windows support
Diffstat (limited to 'src/init.c')
-rw-r--r-- | src/init.c | 14 |
1 files changed, 12 insertions, 2 deletions
@@ -1,4 +1,8 @@ -#include <pthread.h> +#ifdef _WIN32 + #include <windows.h> +#else + #include <pthread.h> +#endif #include <cpuinfo.h> #include <api.h> @@ -17,7 +21,11 @@ uint32_t cpuinfo_cores_count = 0; uint32_t cpuinfo_packages_count = 0; -static pthread_once_t init_guard = PTHREAD_ONCE_INIT; +#ifdef _WIN32 + static INIT_ONCE init_guard = INIT_ONCE_STATIC_INIT; +#else + static pthread_once_t init_guard = PTHREAD_ONCE_INIT; +#endif void CPUINFO_ABI cpuinfo_initialize(void) { #if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64 @@ -25,6 +33,8 @@ void CPUINFO_ABI cpuinfo_initialize(void) { pthread_once(&init_guard, &cpuinfo_x86_mach_init); #elif defined(__linux__) pthread_once(&init_guard, &cpuinfo_x86_linux_init); + #elif defined(_WIN32) + InitOnceExecuteOnce(&init_guard, &cpuinfo_x86_windows_init, NULL, NULL); #else #error Unsupported target OS #endif |