X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fpbd%2Fcpus.cc;h=fb94b475de69735c8990f1f85dc50c619b8929d0;hb=e5c3efe9a313407b93fc0092fb9676138248ad52;hp=80c40162ea71d7dc81fbad89d3579c8b3f2683b7;hpb=bb3690db586d092e70732d6546969a8828aadcfe;p=ardour.git diff --git a/libs/pbd/cpus.cc b/libs/pbd/cpus.cc index 80c40162ea..fb94b475de 100644 --- a/libs/pbd/cpus.cc +++ b/libs/pbd/cpus.cc @@ -25,13 +25,19 @@ #ifdef __linux__ #include #elif defined(__APPLE__) || defined(__FreeBSD__) -#include +#include #include #include +#elif defined(PLATFORM_WINDOWS) +#include #endif #include "pbd/cpus.h" +#if defined(COMPILER_MSVC) && !defined(PTW32_VERSION) +#include // Gets us 'PTW32_VERSION' +#endif + uint32_t hardware_concurrency() { @@ -40,10 +46,14 @@ hardware_concurrency() #elif defined(__APPLE__) || defined(__FreeBSD__) int count; size_t size=sizeof(count); - return sysctlbyname("hw.ncpu",&count,&size,NULL,0)?0:count; + return sysctlbyname("hw.physicalcpu",&count,&size,NULL,0)?0:count; #elif defined(HAVE_UNISTD) && defined(_SC_NPROCESSORS_ONLN) int const count=sysconf(_SC_NPROCESSORS_ONLN); return (count>0)?count:0; +#elif defined(PLATFORM_WINDOWS) + SYSTEM_INFO sys_info; + GetSystemInfo( &sys_info ); + return sys_info.dwNumberOfProcessors; #else return 0; #endif