]> err.no Git - moreutils/commitdiff
use sysconf to determine number of processors
authorJoey Hess <joey@gnu.kitenet.net>
Fri, 10 Jul 2009 14:51:46 +0000 (10:51 -0400)
committerJoey Hess <joey@gnu.kitenet.net>
Fri, 10 Jul 2009 14:51:46 +0000 (10:51 -0400)
parallel.c

index 0895c1372465b5b080121f177178800c7264a66b..8045e2209d05f17d220735ab57a8f1742ae2c0d3 100644 (file)
@@ -30,6 +30,7 @@
 #include <sys/select.h>
 #include <sys/types.h>
 #include <sys/wait.h>
+#include <unistd.h>
 
 void usage() {
        printf("parallel [OPTIONS] command -- arguments: for each argument, "
@@ -121,9 +122,13 @@ int main(int argc, char **argv) {
                }
        }
 
-       if (maxjobs < 0 && maxload < 0) {
-               maxjobs = 1; /* XXX: Maybe we should try to autodetect
-                               number of CPUs? */
+       if (maxjobs < 0) {
+#ifdef _SC_NPROCESSORS_ONLN
+               maxjobs = sysconf(_SC_NPROCESSORS_ONLN);
+#else
+#warning Cannot autodetect number of CPUS on this system: _SC_NPROCESSORS_ONLN not defined.
+               maxjobs = 1;
+#endif
        }
 
        while (optind < argc) {