提交 cf804415 编写于 作者: X xlu

6673124: Runtime.availableProcessors / os::active_processor_count wrong if...

6673124: Runtime.availableProcessors / os::active_processor_count wrong if unused processor sets exist
Reviewed-by: acorn, dholmes
上级 202c36b8
...@@ -462,16 +462,14 @@ int os::active_processor_count() { ...@@ -462,16 +462,14 @@ int os::active_processor_count() {
int online_cpus = sysconf(_SC_NPROCESSORS_ONLN); int online_cpus = sysconf(_SC_NPROCESSORS_ONLN);
pid_t pid = getpid(); pid_t pid = getpid();
psetid_t pset = PS_NONE; psetid_t pset = PS_NONE;
// Are we running in a processor set? // Are we running in a processor set or is there any processor set around?
if (pset_bind(PS_QUERY, P_PID, pid, &pset) == 0) { if (pset_bind(PS_QUERY, P_PID, pid, &pset) == 0) {
if (pset != PS_NONE) { uint_t pset_cpus;
uint_t pset_cpus; // Query the number of cpus available to us.
// Query number of cpus in processor set if (pset_info(pset, NULL, &pset_cpus, NULL) == 0) {
if (pset_info(pset, NULL, &pset_cpus, NULL) == 0) { assert(pset_cpus > 0 && pset_cpus <= online_cpus, "sanity check");
assert(pset_cpus > 0 && pset_cpus <= online_cpus, "sanity check"); _processors_online = pset_cpus;
_processors_online = pset_cpus; return pset_cpus;
return pset_cpus;
}
} }
} }
// Otherwise return number of online cpus // Otherwise return number of online cpus
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册