more robust cpu detection
This commit is contained in:
parent
ce9ab3fb5d
commit
553f49eed2
|
@ -47,15 +47,24 @@ import threading
|
|||
|
||||
|
||||
def num_cpus():
|
||||
n = 0
|
||||
cpuinfo_file = "/proc/cpuinfo"
|
||||
if os.path.exists(cpuinfo_file):
|
||||
for line in open(cpuinfo_file):
|
||||
if line.startswith("processor"):
|
||||
n = n + 1
|
||||
else:
|
||||
n = 1
|
||||
return n
|
||||
"""
|
||||
Detects the number of CPUs on a system. Cribbed from pp.
|
||||
"""
|
||||
# Linux, Unix and MacOS:
|
||||
if hasattr(os, "sysconf"):
|
||||
if os.sysconf_names.has_key("SC_NPROCESSORS_ONLN"):
|
||||
# Linux & Unix:
|
||||
ncpus = os.sysconf("SC_NPROCESSORS_ONLN")
|
||||
if isinstance(ncpus, int) and ncpus > 0:
|
||||
return ncpus
|
||||
else: # OSX:
|
||||
return int(os.popen2("sysctl -n hw.ncpu")[1].read())
|
||||
# Windows:
|
||||
if os.environ.has_key("NUMBER_OF_PROCESSORS"):
|
||||
ncpus = int(os.environ["NUMBER_OF_PROCESSORS"]);
|
||||
if ncpus > 0:
|
||||
return ncpus
|
||||
return 1 # Default
|
||||
|
||||
class DependencyTracker:
|
||||
""" Track dependencies between packages. This is basically a
|
||||
|
|
Loading…
Reference in New Issue