From 06d64cda3cc215af965f518809a0f3b1ebcfc024 Mon Sep 17 00:00:00 2001
From: zeliard <spacesun@naver.com>
Date: Thu, 30 Apr 2015 18:02:06 +0900
Subject: [PATCH] implement gpr_cpu_num_cores() and gpr_cpu_current_cpu() on
 Windows

---
 src/core/support/cpu_windows.c | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/src/core/support/cpu_windows.c b/src/core/support/cpu_windows.c
index cb454ccd3b..4f7103d282 100644
--- a/src/core/support/cpu_windows.c
+++ b/src/core/support/cpu_windows.c
@@ -34,19 +34,17 @@
 #include <grpc/support/port_platform.h>
 
 #ifdef GPR_WIN32
-
+#include <Windows.h>
 #include <grpc/support/log.h>
 
 unsigned gpr_cpu_num_cores(void) {
-  /* TODO(jtattermusch): implement */
-  gpr_log(GPR_ERROR, "Cannot determine number of CPUs: assuming 1");
-  return 1;
+  SYSTEM_INFO si;
+  GetSystemInfo(&si);
+  return si.dwNumberOfProcessors;
 }
 
 unsigned gpr_cpu_current_cpu(void) {
-  /* TODO(jtattermusch): implement */
-  gpr_log(GPR_ERROR, "Cannot determine current CPU");
-  return 0;
+  return GetCurrentProcessorNumber();
 }
 
 #endif /* GPR_WIN32 */
-- 
GitLab