#2513 rewrite the computation of the number of cpus refs[t:2513]

git-svn-id: file:///svn/toku/tokudb@24901 c7de825b-a66e-492c-adef-691d508d4ae1
This commit is contained in:
Rich Prohaska 2013-04-16 23:59:24 -04:00 committed by Yoni Fogel
parent 17eccfed9b
commit 22ae678c4a

View file

@ -62,24 +62,28 @@ toku_os_get_number_active_processors(void) {
#define DO_AFFINITY 1
#if DO_AFFINITY
#include <sched.h>
{
cpu_set_t cpuset;
int r = sched_getaffinity(getpid(), sizeof cpuset, &cpuset);
assert(r == 0);
int nn = 0;
int ncpus = 0;
for (unsigned i = 0; i < 8 * sizeof cpuset; i++)
if (CPU_ISSET(i, &cpuset))
nn++;
assert(nn <= n);
n = nn;
ncpus++;
assert(ncpus <= n);
n = ncpus;
}
#endif
#define DO_TOKU_NCPUS 1
#if DO_TOKU_NCPUS
{
char *toku_ncpus = getenv("TOKU_NCPUS");
if (toku_ncpus) {
int ncpus = atoi(toku_ncpus);
if (ncpus < n)
n = ncpus;
}
}
#endif
return n;
}