提交 60847a3b 编写于 作者: J Jos Collin 提交者: Facebook Github Bot

port: updated PhysicalCoreID()

Summary: Checked the return value of __get_cpuid(). Implemented the else case where the arch is different from i386 and x86_64.

Pulled By: ajkr

Differential Revision: D4973496

fbshipit-source-id: c40fdef5840364c2a79b1d11df0db5d4ec3d6a4a
上级 b551104e
......@@ -142,11 +142,18 @@ int PhysicalCoreID() {
// if you ever find that this function is hot on Linux, you can go from
// ~200 nanos to ~20 nanos by adding the machinery to use __vdso_getcpu
unsigned eax, ebx = 0, ecx, edx;
__get_cpuid(1, &eax, &ebx, &ecx, &edx);
if (!__get_cpuid(1, &eax, &ebx, &ecx, &edx)) {
return -1;
}
return ebx >> 24;
#else
// getcpu or sched_getcpu could work here
return -1;
int cpuno = sched_getcpu();
if (cpuno < 0) {
return -1;
}
else {
return cpuno;
}
#endif
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册