@@ -252,23 +252,23 @@ int get_num_procs(void) {
252252 ret = omp_get_num_places ();
253253 if (ret > 0 ) nums = ret ;
254254#endif
255- return nums ;
255+ return ( nums > 0 ? nums : 2 ) ;
256256#endif
257257
258258#if !defined(OS_LINUX )
259- return nums ;
259+ return ( nums > 0 ? nums : 2 ) ;
260260#endif
261261
262262#if !defined(__GLIBC_PREREQ )
263- return nums ;
263+ return ( nums > 0 ? nums : 2 ) ;
264264#else
265265 #if !__GLIBC_PREREQ (2 , 3 )
266- return nums ;
266+ return ( nums > 0 ? nums : 2 ) ;
267267 #endif
268268
269269 #if !__GLIBC_PREREQ (2 , 7 )
270270 ret = sched_getaffinity (0 ,sizeof (cpuset ), & cpuset );
271- if (ret != 0 ) return nums ;
271+ if (ret != 0 ) return ( nums > 0 ? nums : 2 ) ;
272272 n = 0 ;
273273 #if !__GLIBC_PREREQ (2 , 6 )
274274 for (i = 0 ;i < nums ;i ++ )
@@ -277,31 +277,31 @@ int get_num_procs(void) {
277277 #else
278278 nums = CPU_COUNT (sizeof (cpuset ),& cpuset );
279279 #endif
280- return nums ;
280+ return ( nums > 0 ? nums : 2 ) ;
281281 #else
282282 if (nums >= CPU_SETSIZE ) {
283283 cpusetp = CPU_ALLOC (nums );
284284 if (cpusetp == NULL ) {
285- return nums ;
285+ return ( nums > 0 ? nums : 2 ) ;
286286 }
287287 size = CPU_ALLOC_SIZE (nums );
288288 ret = sched_getaffinity (0 ,size ,cpusetp );
289289 if (ret != 0 ) {
290290 CPU_FREE (cpusetp );
291- return nums ;
291+ return ( nums > 0 ? nums : 2 ) ;
292292 }
293293 ret = CPU_COUNT_S (size ,cpusetp );
294294 if (ret > 0 && ret < nums ) nums = ret ;
295295 CPU_FREE (cpusetp );
296- return nums ;
296+ return ( nums > 0 ? nums : 2 ) ;
297297 } else {
298298 ret = sched_getaffinity (0 ,sizeof (cpuset ),& cpuset );
299299 if (ret != 0 ) {
300- return nums ;
300+ return ( nums > 0 ? nums : 2 ) ;
301301 }
302302 ret = CPU_COUNT (& cpuset );
303303 if (ret > 0 && ret < nums ) nums = ret ;
304- return nums ;
304+ return ( nums > 0 ? nums : 2 ) ;
305305 }
306306 #endif
307307#endif
@@ -1823,56 +1823,56 @@ int get_num_procs(void) {
18231823 ret = omp_get_num_places ();
18241824 if (ret > 0 ) nums = ret ;
18251825#endif
1826- return nums ;
1826+ return ( nums > 0 ? nums : 2 ) ;
18271827#endif
18281828
18291829#if !defined(OS_LINUX )
1830- return nums ;
1830+ return ( nums > 0 ? nums : 2 ) ;
18311831#endif
18321832
18331833#if !defined(__GLIBC_PREREQ )
1834- return nums ;
1834+ return ( nums > 0 ? nums : 2 ) ;
18351835#else
18361836 #if !__GLIBC_PREREQ (2 , 3 )
1837- return nums ;
1837+ return ( nums > 0 ? nums : 2 ) ;
18381838 #endif
18391839
18401840 #if !__GLIBC_PREREQ (2 , 7 )
18411841 ret = sched_getaffinity (0 ,sizeof (cpuset ), & cpuset );
1842- if (ret != 0 ) return nums ;
1842+ if (ret != 0 ) return ( nums > 0 ? nums : 2 ) ;
18431843 n = 0 ;
18441844 #if !__GLIBC_PREREQ (2 , 6 )
1845- for (i = 0 ;i < nums ;i ++ )
1845+ for (i = 0 ;i < ( nums > 0 ? nums : 2 ) ;i ++ )
18461846 if (CPU_ISSET (i ,& cpuset )) n ++ ;
18471847 nums = n ;
18481848 #else
18491849 nums = CPU_COUNT (sizeof (cpuset ),& cpuset );
18501850 #endif
1851- return nums ;
1851+ return ( nums > 0 ? nums : 2 ) ;
18521852 #else
18531853 if (nums >= CPU_SETSIZE ) {
18541854 cpusetp = CPU_ALLOC (nums );
18551855 if (cpusetp == NULL ) {
1856- return nums ;
1856+ return ( nums > 0 ? nums : 2 ) ;
18571857 }
18581858 size = CPU_ALLOC_SIZE (nums );
18591859 ret = sched_getaffinity (0 ,size ,cpusetp );
18601860 if (ret != 0 ) {
18611861 CPU_FREE (cpusetp );
1862- return nums ;
1862+ return ( nums > 0 ? nums : 2 ) ;
18631863 }
18641864 ret = CPU_COUNT_S (size ,cpusetp );
18651865 if (ret > 0 && ret < nums ) nums = ret ;
18661866 CPU_FREE (cpusetp );
1867- return nums ;
1867+ return ( nums > 0 ? nums : 2 ) ;
18681868 } else {
18691869 ret = sched_getaffinity (0 ,sizeof (cpuset ),& cpuset );
18701870 if (ret != 0 ) {
1871- return nums ;
1871+ return ( nums > 0 ? nums : 2 ) ;
18721872 }
18731873 ret = CPU_COUNT (& cpuset );
18741874 if (ret > 0 && ret < nums ) nums = ret ;
1875- return nums ;
1875+ return ( nums > 0 ? nums : 2 ) ;
18761876 }
18771877 #endif
18781878#endif
0 commit comments