mirror of
https://git.yoctoproject.org/poky
synced 2026-09-24 22:36:21 +02: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:
committed by
Richard Purdie
parent
53b602c4e4
commit
016b91b334
@@ -2077,6 +2077,14 @@ class CookerParser(object):
|
|||||||
for process in self.processes:
|
for process in self.processes:
|
||||||
self.parser_quit.put(None)
|
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:
|
for process in self.processes:
|
||||||
if force:
|
if force:
|
||||||
process.join(.1)
|
process.join(.1)
|
||||||
|
|||||||
Reference in New Issue
Block a user