Disentangle pathways for cpu counts above and below 1024

This commit is contained in:
Martin Kroeker 2019-02-09 18:49:16 +01:00 committed by GitHub
parent 8b37c8a143
commit ad86d7ceb2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 42 additions and 24 deletions

View File

@ -236,13 +236,13 @@ int get_num_procs(void) {
#endif
return nums;
#else
if (nums >= CPU_SETSIZE) {
cpusetp = CPU_ALLOC(nums);
if (cpusetp == NULL) {
return nums;
}
cpuset = *cpusetp;
size = CPU_ALLOC_SIZE(nums);
ret = sched_getaffinity(0,sizeof(cpuset),&cpuset);
ret = sched_getaffinity(0,size,cpusetp);
if (ret!=0) {
CPU_FREE(cpusetp);
return nums;
@ -251,6 +251,15 @@ int get_num_procs(void) {
if (ret > 0 && ret < nums) nums = ret;
CPU_FREE(cpusetp);
return nums;
} else {
ret = sched_getaffinity(0,sizeof(cpuset),&cpuset);
if (ret!=0) {
return nums;
}
ret = CPU_COUNT(&cpuset);
if (ret > 0 && ret < nums) nums = ret;
return nums;
}
#endif
#endif
}
@ -1763,13 +1772,13 @@ int get_num_procs(void) {
#endif
return nums;
#else
if (nums >= CPU_SETSIZE) {
cpusetp = CPU_ALLOC(nums);
if (cpusetp == NULL) {
return nums;
}
cpuset = *cpusetp;
size = CPU_ALLOC_SIZE(nums);
ret = sched_getaffinity(0,sizeof(cpuset),&cpuset);
ret = sched_getaffinity(0,size,cpusetp);
if (ret!=0) {
CPU_FREE(cpusetp);
return nums;
@ -1778,6 +1787,15 @@ int get_num_procs(void) {
if (ret > 0 && ret < nums) nums = ret;
CPU_FREE(cpusetp);
return nums;
} else {
ret = sched_getaffinity(0,sizeof(cpuset),&cpuset);
if (ret!=0) {
return nums;
}
ret = CPU_COUNT(&cpuset);
if (ret > 0 && ret < nums) nums = ret;
return nums;
}
#endif
#endif
}