[oe-commits] [bitbake] 03/03: cooker: Split recipes to parse amongst threads ahead of time
git at git.openembedded.org
git at git.openembedded.org
Wed Jan 2 17:45:19 UTC 2019
This is an automated email from the git hooks/post-receive script.
rpurdie pushed a commit to branch 1.40
in repository bitbake.
commit 88fae1d334b462d18bede167ea89dfa491a8a46f
Author: Richard Purdie <richard.purdie at linuxfoundation.org>
AuthorDate: Fri Dec 28 16:59:53 2018 +0000
cooker: Split recipes to parse amongst threads ahead of time
Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
lib/bb/cooker.py | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py
index f374401..018a27e 100644
--- a/lib/bb/cooker.py
+++ b/lib/bb/cooker.py
@@ -1911,8 +1911,8 @@ class Parser(multiprocessing.Process):
result = pending.pop()
else:
try:
- job = self.jobs.get(timeout=0.25)
- except queue.Empty:
+ job = self.jobs.pop()
+ except IndexError:
break
result = self.parse(*job)
@@ -1999,12 +1999,12 @@ class CookerParser(object):
self.parser_quit = multiprocessing.Queue(maxsize=self.num_processes)
self.result_queue = multiprocessing.Queue()
- self.jobs = multiprocessing.Queue()
- for j in self.willparse:
- self.jobs.put(j)
+ def chunkify(lst,n):
+ return [lst[i::n] for i in range(n)]
+ self.jobs = chunkify(self.willparse, self.num_processes)
for i in range(0, self.num_processes):
- parser = Parser(self.jobs, self.result_queue, self.parser_quit, init, self.cooker.configuration.profile)
+ parser = Parser(self.jobs[i], self.result_queue, self.parser_quit, init, self.cooker.configuration.profile)
parser.start()
self.process_names.append(parser.name)
self.processes.append(parser)
@@ -2032,8 +2032,6 @@ class CookerParser(object):
for process in self.processes:
self.parser_quit.put(None)
- self.jobs.cancel_join_thread()
-
for process in self.processes:
if force:
process.join(.1)
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Openembedded-commits
mailing list