Merge "parallelize add_partition_calls only if output_zip is None"

This commit is contained in:
Treehugger Robot 2023-05-12 10:56:23 +00:00 committed by Gerrit Code Review
commit 8d5d2257d9

View file

@ -1083,10 +1083,15 @@ def AddImagesToTargetFiles(filename):
("system_dlkm", has_system_dlkm, AddSystemDlkm, []),
("system_other", has_system_other, AddSystemOther, []),
)
with ThreadPoolExecutor(max_workers=len(add_partition_calls)) as executor:
for future in [executor.submit(add_partition, *call) for call in add_partition_calls]:
future.result()
# If output_zip exists, each add_partition_calls writes bytes to the same output_zip,
# which is not thread-safe. So, run them in serial if output_zip exists.
if output_zip:
for call in add_partition_calls:
add_partition(*call)
else:
with ThreadPoolExecutor(max_workers=len(add_partition_calls)) as executor:
for future in [executor.submit(add_partition, *call) for call in add_partition_calls]:
future.result()
AddApexInfo(output_zip)