mirror of
https://git.yoctoproject.org/poky
synced 2026-09-20 03:49:32 +02:00
classes/sstate.bbclass: Improve checkstatus using connection cache.
Use FetcherConnectionCache to improve times when do checkstatus over sstate resources. [YOCTO #7796] (From OE-Core rev: e6f66370c6ce15aca18ef64491bab3dc92b80c57) Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
76993861a1
commit
7f8286fb9e
@@ -739,6 +739,13 @@ def sstate_checkhashes(sq_fn, sq_task, sq_hash, sq_hashfn, d, siginfo=False):
|
|||||||
if localdata.getVar('BB_NO_NETWORK', True) == "1" and localdata.getVar('SSTATE_MIRROR_ALLOW_NETWORK', True) == "1":
|
if localdata.getVar('BB_NO_NETWORK', True) == "1" and localdata.getVar('SSTATE_MIRROR_ALLOW_NETWORK', True) == "1":
|
||||||
localdata.delVar('BB_NO_NETWORK')
|
localdata.delVar('BB_NO_NETWORK')
|
||||||
|
|
||||||
|
from bb.fetch2 import FetchConnectionCache
|
||||||
|
def checkstatus_init(thread_worker):
|
||||||
|
thread_worker.connection_cache = FetchConnectionCache()
|
||||||
|
|
||||||
|
def checkstatus_end(thread_worker):
|
||||||
|
thread_worker.connection_cache.close_connections()
|
||||||
|
|
||||||
def checkstatus(thread_worker, arg):
|
def checkstatus(thread_worker, arg):
|
||||||
(task, sstatefile) = arg
|
(task, sstatefile) = arg
|
||||||
|
|
||||||
@@ -748,7 +755,8 @@ def sstate_checkhashes(sq_fn, sq_task, sq_hash, sq_hashfn, d, siginfo=False):
|
|||||||
bb.debug(2, "SState: Attempting to fetch %s" % srcuri)
|
bb.debug(2, "SState: Attempting to fetch %s" % srcuri)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
fetcher = bb.fetch2.Fetch(srcuri.split(), localdata2)
|
fetcher = bb.fetch2.Fetch(srcuri.split(), localdata2,
|
||||||
|
connection_cache=thread_worker.connection_cache)
|
||||||
fetcher.checkstatus()
|
fetcher.checkstatus()
|
||||||
bb.debug(2, "SState: Successful fetch test for %s" % srcuri)
|
bb.debug(2, "SState: Successful fetch test for %s" % srcuri)
|
||||||
ret.append(task)
|
ret.append(task)
|
||||||
@@ -771,7 +779,9 @@ 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))
|
bb.note("Checking sstate mirror object availability (for %s objects)" % len(tasklist))
|
||||||
import multiprocessing
|
import multiprocessing
|
||||||
nproc = min(multiprocessing.cpu_count(), len(tasklist))
|
nproc = min(multiprocessing.cpu_count(), len(tasklist))
|
||||||
pool = oe.utils.ThreadedPool(nproc, len(tasklist))
|
|
||||||
|
pool = oe.utils.ThreadedPool(nproc, len(tasklist),
|
||||||
|
worker_init=checkstatus_init, worker_end=checkstatus_end)
|
||||||
for t in tasklist:
|
for t in tasklist:
|
||||||
pool.add_task(checkstatus, t)
|
pool.add_task(checkstatus, t)
|
||||||
pool.start()
|
pool.start()
|
||||||
|
|||||||
Reference in New Issue
Block a user