aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Landley <rob@landley.net>2015-10-27 05:58:19 -0500
committerRob Landley <rob@landley.net>2015-10-27 05:58:19 -0500
commitd4c17cdaf1f72a872dcbe12952412f02810c29b5 (patch)
tree6e2be67906961503052e2c1d7483b95209b6f571
parenteb1bbc245dd6554a8fbe879a4efb903f6e7788cb (diff)
downloadtoybox-d4c17cdaf1f72a872dcbe12952412f02810c29b5.tar.gz
Replace xcount_cpus() with a call to sysconf(_SC_NPROCESSORS_CONF)
-rw-r--r--lib/lib.h1
-rw-r--r--lib/xwrap.c18
-rw-r--r--toys/other/taskset.c2
3 files changed, 1 insertions, 20 deletions
diff --git a/lib/lib.h b/lib/lib.h
index 04e81e8a..90f44dcb 100644
--- a/lib/lib.h
+++ b/lib/lib.h
@@ -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);
}