diff options
author | ncteisen <ncteisen@gmail.com> | 2017-11-14 17:09:48 -0800 |
---|---|---|
committer | ncteisen <ncteisen@gmail.com> | 2017-11-14 17:09:48 -0800 |
commit | b60615895512e2e969d31dbaf7f9eed584b453e0 (patch) | |
tree | 69079043b19931d89d8ea275af2af81e0a7a426b /src/core/lib/support/cpu_linux.cc | |
parent | 88a7a9f82e3a78f28b3e6eb1fba474051d72173b (diff) | |
parent | 070f0c4b677c89052fa92bd24e9541ac1c0ef827 (diff) |
Merge branch 'master' of https://github.com/grpc/grpc into inheritance-in-core
Diffstat (limited to 'src/core/lib/support/cpu_linux.cc')
-rw-r--r-- | src/core/lib/support/cpu_linux.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/core/lib/support/cpu_linux.cc b/src/core/lib/support/cpu_linux.cc index 2280668442..21b1a71dc9 100644 --- a/src/core/lib/support/cpu_linux.cc +++ b/src/core/lib/support/cpu_linux.cc @@ -36,6 +36,13 @@ static int ncpus = 0; static void init_num_cpus() { +#ifndef GPR_MUSL_LIBC_COMPAT + if (sched_getcpu() < 0) { + gpr_log(GPR_ERROR, "Error determining current CPU: %s\n", strerror(errno)); + ncpus = 1; + return; + } +#endif /* This must be signed. sysconf returns -1 when the number cannot be determined */ ncpus = (int)sysconf(_SC_NPROCESSORS_ONLN); @@ -56,6 +63,9 @@ unsigned gpr_cpu_current_cpu(void) { // sched_getcpu() is undefined on musl return 0; #else + if (gpr_cpu_num_cores() == 1) { + return 0; + } int cpu = sched_getcpu(); if (cpu < 0) { gpr_log(GPR_ERROR, "Error determining current CPU: %s\n", strerror(errno)); |