From 3fa32158c45edf276197fa56466ed942ab70be09 Mon Sep 17 00:00:00 2001 From: Aníbal Limón Date: Tue, 23 Jun 2015 11:49:53 -0500 Subject: oe/utils.py: Fix thread leakage in ThreadPool MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In order to fix Thread leakage caused by not call join() in Threads, Pass num_tasks in ThreadPool for add all the tasks into a Queue this enable catch of Queue.Empty exception and exit the threads. classes/sstate.bbclass: Change checkstatus function to match new ThreadPool operation. (From OE-Core rev: 524d92ed7b53bef933527095e82f378b934f25ef) Signed-off-by: Aníbal Limón Signed-off-by: Richard Purdie --- meta/classes/sstate.bbclass | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'meta/classes/sstate.bbclass') diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass index 1e5e98a1da..a80d1ced72 100644 --- a/meta/classes/sstate.bbclass +++ b/meta/classes/sstate.bbclass @@ -771,9 +771,10 @@ def sstate_checkhashes(sq_fn, sq_task, sq_hash, sq_hashfn, d, siginfo=False): bb.note("Checking sstate mirror object availability (for %s objects)" % len(tasklist)) import multiprocessing nproc = min(multiprocessing.cpu_count(), len(tasklist)) - pool = oe.utils.ThreadedPool(nproc) + pool = oe.utils.ThreadedPool(nproc, len(tasklist)) for t in tasklist: pool.add_task(checkstatus, t) + pool.start() pool.wait_completion() inheritlist = d.getVar("INHERIT", True) -- cgit v1.2.3-54-g00ecf