21#if defined(_WIN32) || defined(_WIN64)
22 #define THREAD_SYSTEM_WINDOWS 1
23 #define THREAD_SYSTEM_PLATFORM_NAME "windows"
24#elif defined(__APPLE__)
25 #define THREAD_SYSTEM_MACOS 1
26 #define THREAD_SYSTEM_PLATFORM_NAME "macos"
27 #include <TargetConditionals.h>
28#elif defined(__linux__)
29 #define THREAD_SYSTEM_LINUX 1
30 #define THREAD_SYSTEM_PLATFORM_NAME "linux"
32 #define THREAD_SYSTEM_UNKNOWN_PLATFORM 1
33 #define THREAD_SYSTEM_PLATFORM_NAME "unknown"
37#if defined(__x86_64__) || defined(_M_X64)
38 #define THREAD_SYSTEM_ARCH_X64 1
39 #define THREAD_SYSTEM_ARCH_NAME "x86_64"
40#elif defined(__aarch64__) || defined(_M_ARM64)
41 #define THREAD_SYSTEM_ARCH_ARM64 1
42 #define THREAD_SYSTEM_ARCH_NAME "arm64"
43#elif defined(__i386__) || defined(_M_IX86)
44 #define THREAD_SYSTEM_ARCH_X86 1
45 #define THREAD_SYSTEM_ARCH_NAME "x86"
47 #define THREAD_SYSTEM_ARCH_UNKNOWN 1
48 #define THREAD_SYSTEM_ARCH_NAME "unknown"
52#if defined(THREAD_SYSTEM_MACOS) && defined(THREAD_SYSTEM_ARCH_ARM64)
53 #define THREAD_SYSTEM_HAS_EFFICIENCY_CORES 1
96#if defined(THREAD_SYSTEM_ARCH_X64)
98#elif defined(THREAD_SYSTEM_ARCH_ARM64)
100#elif defined(THREAD_SYSTEM_ARCH_X86)
111#if defined(THREAD_SYSTEM_WINDOWS)
113#elif defined(THREAD_SYSTEM_MACOS)
115#elif defined(THREAD_SYSTEM_LINUX)
126#if defined(THREAD_SYSTEM_ARCH_ARM64)
139 return static_cast<uint32_t
>(std::thread::hardware_concurrency());
146 return static_cast<uint32_t
>(std::thread::hardware_concurrency());
153#if defined(THREAD_SYSTEM_LINUX)
166#if defined(THREAD_SYSTEM_HAS_EFFICIENCY_CORES)
182 info.efficiency_cores = 0;
@ info
Informational messages highlighting progress.