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 <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2014-01-31 11:17:34 +00:00
parent 5e6db9dc4d
commit d93620baea

View File

@@ -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)