From d93620baea489c9b20f740c0d06dcb39cf364ecb Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Fri, 31 Jan 2014 11:17:34 +0000 Subject: bitbake: runqueue: Fix race against tasks sharing stamp files Shared work directories work by assuming bitbake will not run more than one task with a specific stamp name. Recent runqueue optimisations accidentally broke this meaning there could be races. This fixes the code. (Bitbake rev: b1628b1a260ddf43fc9985535b1ddcfcebbb1e5b) Signed-off-by: Richard Purdie --- bitbake/lib/bb/runqueue.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'bitbake/lib') diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index 0475ee2177..91b1f07351 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py @@ -125,7 +125,10 @@ class RunQueueScheduler(object): if not self.buildable: return None if len(self.buildable) == 1: - return self.buildable[0] + taskid = self.buildable[0] + stamp = self.stamps[taskid] + if stamp not in self.rq.build_stamps.itervalues(): + return taskid if not self.rev_prio_map: self.rev_prio_map = range(self.numTasks) -- cgit v1.2.3-54-g00ecf