From: Richard Purdie Date: Fri, 31 Jan 2014 11:17:34 +0000 (+0000) Subject: runqueue: Fix race against tasks sharing stamp files X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b1628b1a260ddf43fc9985535b1ddcfcebbb1e5b;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git 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. Signed-off-by: Richard Purdie --- diff --git a/lib/bb/runqueue.py b/lib/bb/runqueue.py index 0475ee21776..91b1f073519 100644 --- a/lib/bb/runqueue.py +++ b/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)