Tools: size_compare_branches.py: restart failed threads

This commit is contained in:
Peter Barker 2024-01-12 10:12:16 +11:00 committed by Peter Barker
parent 59108e9524
commit 1748711b99

View File

@ -416,7 +416,7 @@ class SizeCompareBranches(object):
break
jobs = None
if self.jobs is not None:
jobs = int(self.jobs / self.num_threads_remaining)
jobs = int(self.jobs / self.n_threads)
if jobs <= 0:
jobs = 1
try:
@ -436,27 +436,29 @@ class SizeCompareBranches(object):
self.failure_exceptions.append(result)
def run_build_tasks_in_parallel(self, tasks):
n_threads = self.parallel_copies
if len(tasks) < n_threads:
n_threads = len(tasks)
self.num_threads_remaining = n_threads
self.n_threads = self.parallel_copies
# shared list for the threads:
self.parallel_tasks = copy.copy(tasks) # make this an argument instead?!
threads = []
self.thread_exit_result_queue = Queue.Queue()
for i in range(0, n_threads):
t = threading.Thread(
target=self.parallel_thread_main,
name=f'task-builder-{i}',
args=[i],
)
t.start()
threads.append(t)
tstart = time.time()
self.failure_exceptions = []
while len(threads):
thread_number = 0
while len(self.parallel_tasks) or len(threads):
if len(tasks) < self.n_threads:
self.n_threads = len(tasks)
while len(threads) < self.n_threads:
self.progress(f"Starting thread {thread_number}")
t = threading.Thread(
target=self.parallel_thread_main,
name=f'task-builder-{thread_number}',
args=[thread_number],
)
t.start()
threads.append(t)
thread_number += 1
self.check_result_queue()
@ -466,10 +468,9 @@ class SizeCompareBranches(object):
if thread.is_alive():
new_threads.append(thread)
threads = new_threads
self.num_threads_remaining = len(threads)
self.progress(
f"remaining-tasks={len(self.parallel_tasks)} " +
f"remaining-threads={len(threads)} failed-threads={len(self.failure_exceptions)} elapsed={int(time.time() - tstart)}s") # noqa
f"failed-threads={len(self.failure_exceptions)} elapsed={int(time.time() - tstart)}s") # noqa
# write out a progress CSV:
task_results = []