bitbake: siggen: Enable batching of unihash queries

Uses the batching API of the client to reduce the effect of latency when
making multiple queries to the server

(Bitbake rev: fdac31655fb5441139f70e50292dbb5774cfdafe)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
This commit is contained in:
Joshua Watt
2024-05-29 09:00:11 -06:00
committed by Steve Sakoman
parent 934c533196
commit 83793ccd86

View File

@@ -726,10 +726,13 @@ class SignatureGeneratorUniHashMixIn(object):
return result
if self.max_parallel <= 1 or len(queries) <= 1:
# No parallelism required. Make the query serially with the single client
# No parallelism required. Make the query using a single client
with self.client() as client:
for tid, args in queries.items():
query_result[tid] = client.get_unihash(*args)
keys = list(queries.keys())
unihashes = client.get_unihash_batch(queries[k] for k in keys)
for idx, k in enumerate(keys):
query_result[k] = unihashes[idx]
else:
with self.client_pool() as client_pool:
query_result = client_pool.get_unihashes(queries)