@@ -12176,23 +12176,9 @@ os_cpu_count_impl(PyObject *module) |
|
|
12176 |
12176 |
{ |
12177 |
12177 |
int ncpu = 0; |
12178 |
12178 |
#ifdef MS_WINDOWS |
12179 |
|
-/* Vista is supported and the GetMaximumProcessorCount API is Win7+ |
12180 |
|
- Need to fallback to Vista behavior if this call isn't present */ |
12181 |
|
-HINSTANCE hKernel32; |
12182 |
|
-static DWORD(CALLBACK *_GetMaximumProcessorCount)(WORD) = NULL; |
12183 |
|
-Py_BEGIN_ALLOW_THREADS |
12184 |
|
-hKernel32 = GetModuleHandleW(L"KERNEL32"); |
12185 |
|
-*(FARPROC*)&_GetMaximumProcessorCount = GetProcAddress(hKernel32, |
12186 |
|
-"GetMaximumProcessorCount"); |
12187 |
|
-Py_END_ALLOW_THREADS |
12188 |
|
-if (_GetMaximumProcessorCount != NULL) { |
12189 |
|
-ncpu = _GetMaximumProcessorCount(ALL_PROCESSOR_GROUPS); |
12190 |
|
- } |
12191 |
|
-else { |
12192 |
|
-SYSTEM_INFO sysinfo; |
12193 |
|
-GetSystemInfo(&sysinfo); |
12194 |
|
-ncpu = sysinfo.dwNumberOfProcessors; |
12195 |
|
- } |
|
12179 |
+/* Declare prototype here to avoid pulling in all of the Win7 APIs in 3.8 */ |
|
12180 |
+DWORD WINAPI GetActiveProcessorCount(WORD group); |
|
12181 |
+ncpu = GetActiveProcessorCount(ALL_PROCESSOR_GROUPS); |
12196 |
12182 |
#elif defined(__hpux) |
12197 |
12183 |
ncpu = mpctl(MPC_GETNUMSPUS, NULL, NULL); |
12198 |
12184 |
#elif defined(HAVE_SYSCONF) && defined(_SC_NPROCESSORS_ONLN) |