diff options
author | Rob Landley <rob@landley.net> | 2015-10-27 05:58:19 -0500 |
---|---|---|
committer | Rob Landley <rob@landley.net> | 2015-10-27 05:58:19 -0500 |
commit | d4c17cdaf1f72a872dcbe12952412f02810c29b5 (patch) | |
tree | 6e2be67906961503052e2c1d7483b95209b6f571 | |
parent | eb1bbc245dd6554a8fbe879a4efb903f6e7788cb (diff) | |
download | toybox-d4c17cdaf1f72a872dcbe12952412f02810c29b5.tar.gz |
Replace xcount_cpus() with a call to sysconf(_SC_NPROCESSORS_CONF)
-rw-r--r-- | lib/lib.h | 1 | ||||
-rw-r--r-- | lib/xwrap.c | 18 | ||||
-rw-r--r-- | toys/other/taskset.c | 2 |
3 files changed, 1 insertions, 20 deletions
@@ -136,7 +136,6 @@ void xpidfile(char *name); void xregcomp(regex_t *preg, char *rexec, int cflags); char *xtzset(char *new); void xsignal(int signal, void *handler); -unsigned xcount_cpus(void); // lib.c void verror_msg(char *msg, int err, va_list va); diff --git a/lib/xwrap.c b/lib/xwrap.c index 69f891b9..4880bbe0 100644 --- a/lib/xwrap.c +++ b/lib/xwrap.c @@ -723,21 +723,3 @@ void xsignal(int signal, void *handler) if (sigaction(signal, sa, 0)) perror_exit("xsignal %d", signal); } - -unsigned xcount_cpus(void) -{ - int len = 0, i, fd = xopen("/proc/stat", O_RDONLY); - unsigned cpus = 0; - - for (;;) { - if (1>(i = xread(fd, libbuf, sizeof(libbuf)-len))) break; - len += i; - // Each cpu# line has data after it, so last 5 bytes of file can't match - for (i = 0; i<len-5; i++) - if (!strncmp(libbuf+i, "\ncpu", 4) && isdigit(libbuf[i+4])) cpus++; - memmove(libbuf, libbuf+i, 5); - } - close(fd); - - return cpus; -} diff --git a/toys/other/taskset.c b/toys/other/taskset.c index 29ce3173..abc38723 100644 --- a/toys/other/taskset.c +++ b/toys/other/taskset.c @@ -127,7 +127,7 @@ void nproc_main(void) } // If getaffinity failed or --all, count cpu entries in proc - if (!nproc) nproc = xcount_cpus(); + if (!nproc) nproc = sysconf(_SC_NPROCESSORS_CONF); xprintf("%u\n", nproc); } |