[gnome-continuous-yocto/gnomeostree-3.28-rocko: 3892/8267] bitbake: runqueue: Only start fakeroot workers when needed
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-continuous-yocto/gnomeostree-3.28-rocko: 3892/8267] bitbake: runqueue: Only start fakeroot workers when needed
- Date: Sun, 17 Dec 2017 01:16:15 +0000 (UTC)
commit 4fc02c5eaaf7ef70606d06f8c7664ce7e40d166b
Author: Richard Purdie <richard purdie linuxfoundation org>
Date: Wed Dec 21 14:11:24 2016 +0000
bitbake: runqueue: Only start fakeroot workers when needed
Fakeroot workers usually have dependencies that need to be ready before they
can be started. Starting them as a block therefore doesn't work as the
dependencies may or may not have been built. Therefore start the multiconfig
fakeworkers individually upon demand.
[YOCTO #10344]
(Bitbake rev: ab15486c636e451ed5a62e561980946887901c3b)
Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>
bitbake/lib/bb/runqueue.py | 15 +++++++--------
1 files changed, 7 insertions(+), 8 deletions(-)
---
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py
index ef14347..48c6a79 100644
--- a/bitbake/lib/bb/runqueue.py
+++ b/bitbake/lib/bb/runqueue.py
@@ -1068,10 +1068,9 @@ class RunQueue:
for mc in self.rqdata.dataCaches:
self.worker[mc] = self._start_worker(mc)
- def start_fakeworker(self, rqexec):
- if not self.fakeworker:
- for mc in self.rqdata.dataCaches:
- self.fakeworker[mc] = self._start_worker(mc, True, rqexec)
+ def start_fakeworker(self, rqexec, mc):
+ if not mc in self.fakeworker:
+ self.fakeworker[mc] = self._start_worker(mc, True, rqexec)
def teardown_workers(self):
self.teardown = True
@@ -1804,9 +1803,9 @@ class RunQueueExecuteTasks(RunQueueExecute):
taskdep = self.rqdata.dataCaches[mc].task_deps[taskfn]
if 'fakeroot' in taskdep and taskname in taskdep['fakeroot'] and not
(self.cooker.configuration.dry_run or self.rqdata.setscene_enforce):
- if not self.rq.fakeworker:
+ if not mc in self.rq.fakeworker:
try:
- self.rq.start_fakeworker(self)
+ self.rq.start_fakeworker(self, mc)
except OSError as exc:
logger.critical("Failed to spawn fakeroot worker to run %s: %s" % (task, str(exc)))
self.rq.state = runQueueFailed
@@ -2221,8 +2220,8 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
taskdep = self.rqdata.dataCaches[mc].task_deps[taskfn]
if 'fakeroot' in taskdep and taskname in taskdep['fakeroot'] and not
self.cooker.configuration.dry_run:
- if not self.rq.fakeworker:
- self.rq.start_fakeworker(self)
+ if not mc in self.rq.fakeworker:
+ self.rq.start_fakeworker(self, mc)
self.rq.fakeworker[mc].process.stdin.write(b"<runtask>" + pickle.dumps((taskfn, task,
taskname, True, self.cooker.collection.get_file_appends(taskfn), taskdepdata, False)) + b"</runtask>")
self.rq.fakeworker[mc].process.stdin.flush()
else:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]