1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-07 16:59:22 +00:00

bitbake: cooker: Cleanup the queue before call process.join()

Fixed:
$ rm -fr tmp-glibc/cache/default-glibc/qemux86/x86_64/bb_cache.dat* ; bitbake -p
Press *one* Ctrl-C when the parsing process is at about 50%, then the processes
are not exited:

Keyboard Interrupt, closing down...

Timeout while waiting for a reply from the bitbake server

It hangs at process.join(), according to:

https://docs.python.org/3.7/library/multiprocessing.html

Cleanup the queue before call process.join() can fix the problem.

(Bitbake rev: 3eddfadd19b2ce4c061861abf0c340e3825b41ff)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Robert Yang
2019-08-07 17:50:48 +08:00
committed by Richard Purdie
parent 53b602c4e4
commit 016b91b334
+8
View File
@@ -2077,6 +2077,14 @@ class CookerParser(object):
for process in self.processes:
self.parser_quit.put(None)
# Cleanup the queue before call process.join(), otherwise there might be
# deadlocks.
while True:
try:
self.result_queue.get(timeout=0.25)
except queue.Empty:
break
for process in self.processes:
if force:
process.join(.1)