From 50e6f13896dc355512433d9ff742205efb6d06ac Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Fri, 17 Jan 2020 20:08:10 +0000 Subject: [PATCH] scripts/pkgbuilder.py: fix failure to queue jobs to idle slots due to race --- scripts/pkgbuilder.py | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/scripts/pkgbuilder.py b/scripts/pkgbuilder.py index 46c128e770..410bb64a10 100755 --- a/scripts/pkgbuilder.py +++ b/scripts/pkgbuilder.py @@ -363,22 +363,21 @@ class Builder: # Return False once all jobs have been queued, and finished building. def queueWork(self): try: - for process in self.processes: - if not process.isActive(): - job = self.generator.getNextJob() + for i in range(self.generator.activeJobCount(), self.threadcount): + job = self.generator.getNextJob() - if self.verbose: - self.vprint("INIT", "submit", job["name"]) + if self.verbose: + self.vprint("INIT", "submit", job["name"]) - if self.debug: - DEBUG("Queueing Job: %s %s" % (job["task"], job["name"])) + if self.debug: + DEBUG("Queueing Job: %s %s" % (job["task"], job["name"])) - self.wseq += 1 - job["seq"] = self.wseq - if self.log_burst: - job["logfile"] = "%s/logs/%d.log" % (THREAD_CONTROL, job["seq"]) + self.wseq += 1 + job["seq"] = self.wseq + if self.log_burst: + job["logfile"] = "%s/logs/%d.log" % (THREAD_CONTROL, job["seq"]) - self.work.put(job) + self.work.put(job) if self.verbose: self.vprint("ACTV", "active", ", ".join(self.generator.activeJobNames()))