diff --git a/driver/others/memory.c b/driver/others/memory.c index 0f4cbb24d..a9b4650eb 100644 --- a/driver/others/memory.c +++ b/driver/others/memory.c @@ -252,23 +252,23 @@ int get_num_procs(void) { ret = omp_get_num_places(); if (ret >0 ) nums = ret; #endif - return nums; + return (nums > 0 ? nums : 2); #endif #if !defined(OS_LINUX) - return nums; + return (nums > 0 ? nums : 2); #endif #if !defined(__GLIBC_PREREQ) - return nums; + return (nums > 0 ? nums :2); #else #if !__GLIBC_PREREQ(2, 3) - return nums; + return (nums > 0 ? nums :2); #endif #if !__GLIBC_PREREQ(2, 7) ret = sched_getaffinity(0,sizeof(cpuset), &cpuset); - if (ret!=0) return nums; + if (ret!=0) return (nums > 0 ? nums :2); n=0; #if !__GLIBC_PREREQ(2, 6) for (i=0;i 0 ? nums :2); #else if (nums >= CPU_SETSIZE) { cpusetp = CPU_ALLOC(nums); if (cpusetp == NULL) { - return nums; + return (nums > 0 ? nums :2); } size = CPU_ALLOC_SIZE(nums); ret = sched_getaffinity(0,size,cpusetp); if (ret!=0) { CPU_FREE(cpusetp); - return nums; + return (nums > 0 ? nums :2); } ret = CPU_COUNT_S(size,cpusetp); if (ret > 0 && ret < nums) nums = ret; CPU_FREE(cpusetp); - return nums; + return (nums > 0 ? nums :2); } else { ret = sched_getaffinity(0,sizeof(cpuset),&cpuset); if (ret!=0) { - return nums; + return (nums > 0 ? nums :2); } ret = CPU_COUNT(&cpuset); if (ret > 0 && ret < nums) nums = ret; - return nums; + return (nums > 0 ? nums :2); } #endif #endif @@ -1823,56 +1823,56 @@ int get_num_procs(void) { ret = omp_get_num_places(); if (ret >0 ) nums = ret; #endif - return nums; + return (nums > 0 ? nums :2); #endif #if !defined(OS_LINUX) - return nums; + return (nums > 0 ? nums :2); #endif #if !defined(__GLIBC_PREREQ) - return nums; + return (nums > 0 ? nums :2); #else #if !__GLIBC_PREREQ(2, 3) - return nums; + return (nums > 0 ? nums :2); #endif #if !__GLIBC_PREREQ(2, 7) ret = sched_getaffinity(0,sizeof(cpuset), &cpuset); - if (ret!=0) return nums; + if (ret!=0) return (nums > 0 ? nums :2); n=0; #if !__GLIBC_PREREQ(2, 6) - for (i=0;i 0 ? nums :2);i++) if (CPU_ISSET(i,&cpuset)) n++; nums=n; #else nums = CPU_COUNT(sizeof(cpuset),&cpuset); #endif - return nums; + return (nums > 0 ? nums :2); #else if (nums >= CPU_SETSIZE) { cpusetp = CPU_ALLOC(nums); if (cpusetp == NULL) { - return nums; + return (nums > 0 ? nums :2); } size = CPU_ALLOC_SIZE(nums); ret = sched_getaffinity(0,size,cpusetp); if (ret!=0) { CPU_FREE(cpusetp); - return nums; + return (nums > 0 ? nums :2); } ret = CPU_COUNT_S(size,cpusetp); if (ret > 0 && ret < nums) nums = ret; CPU_FREE(cpusetp); - return nums; + return (nums > 0 ? nums :2); } else { ret = sched_getaffinity(0,sizeof(cpuset),&cpuset); if (ret!=0) { - return nums; + return (nums > 0 ? nums :2); } ret = CPU_COUNT(&cpuset); if (ret > 0 && ret < nums) nums = ret; - return nums; + return (nums > 0 ? nums :2); } #endif #endif