summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJürg Billeter <j@bitron.ch>2018-10-01 08:53:06 +0000
committerJürg Billeter <j@bitron.ch>2018-10-01 08:53:06 +0000
commit232662f19545e603057570901accc8fc9a6ed2ce (patch)
treecd50472137c7b9c0629375d46a1271424af5562e
parent5d3f039f0d2067f14c1d746d7d00ad859b1c4737 (diff)
parent14e1a3b3394ff0517ae7f4a287de33cf52a654d6 (diff)
downloadbuildstream-232662f19545e603057570901accc8fc9a6ed2ce.tar.gz
Merge branch 'juerg/cpucount' into 'master'
_platform: Fix get_cpu_count() with cap=None See merge request BuildStream/buildstream!840
-rw-r--r--buildstream/_platform/darwin.py7
-rw-r--r--buildstream/_platform/platform.py6
2 files changed, 9 insertions, 4 deletions
diff --git a/buildstream/_platform/darwin.py b/buildstream/_platform/darwin.py
index 7092eb2aa..c4361e897 100644
--- a/buildstream/_platform/darwin.py
+++ b/buildstream/_platform/darwin.py
@@ -41,10 +41,11 @@ class Darwin(Platform):
return True
def get_cpu_count(self, cap=None):
- if cap < os.cpu_count():
- return cap
+ cpu_count = os.cpu_count()
+ if cap is None:
+ return cpu_count
else:
- return os.cpu_count()
+ return min(cpu_count, cap)
def set_resource_limits(self, soft_limit=OPEN_MAX, hard_limit=None):
super().set_resource_limits(soft_limit)
diff --git a/buildstream/_platform/platform.py b/buildstream/_platform/platform.py
index bc6a624c4..d3e4b949a 100644
--- a/buildstream/_platform/platform.py
+++ b/buildstream/_platform/platform.py
@@ -67,7 +67,11 @@ class Platform():
return cls._instance
def get_cpu_count(self, cap=None):
- return min(len(os.sched_getaffinity(0)), cap)
+ cpu_count = len(os.sched_getaffinity(0))
+ if cap is None:
+ return cpu_count
+ else:
+ return min(cpu_count, cap)
##################################################################
# Sandbox functions #