Format python files using yapf
Change-Id: I8b7b97efb6bfdcceef9efc533cdaa0675ab7db40
diff --git a/tools/thread_utils.py b/tools/thread_utils.py
index 5810332..e92d2c8 100755
--- a/tools/thread_utils.py
+++ b/tools/thread_utils.py
@@ -8,6 +8,7 @@
from threading import Thread
import traceback
+
# A thread that is given a list of jobs. The thread will repeatedly take a job
# from the list of jobs (which is shared with other threads) and execute it
# until there is no more jobs.
@@ -21,99 +22,101 @@
# setting an appropriate timeout).
class WorkerThread(Thread):
- # The initialization of a WorkerThread is never run concurrently with the
- # initialization of other WorkerThreads.
- def __init__(self, jobs, jobs_lock, stop_on_first_failure, worker_id):
- Thread.__init__(self)
- self.completed = False
- self.jobs = jobs
- self.jobs_lock = jobs_lock
- self.number_of_jobs = len(jobs)
- self.stop_on_first_failure = stop_on_first_failure
- self.success = True
- self.worker_id = worker_id
+ # The initialization of a WorkerThread is never run concurrently with the
+ # initialization of other WorkerThreads.
+ def __init__(self, jobs, jobs_lock, stop_on_first_failure, worker_id):
+ Thread.__init__(self)
+ self.completed = False
+ self.jobs = jobs
+ self.jobs_lock = jobs_lock
+ self.number_of_jobs = len(jobs)
+ self.stop_on_first_failure = stop_on_first_failure
+ self.success = True
+ self.worker_id = worker_id
- def run(self):
- print_thread("Starting worker", self.worker_id)
- while True:
- (job, job_id) = self.take_job(self.jobs, self.jobs_lock)
- if job is None:
- break
- try:
- print_thread(
- "Starting job %s/%s" % (job_id, self.number_of_jobs),
- self.worker_id)
- exit_code = job(self.worker_id)
- print_thread(
- "Job %s finished with exit code %s"
- % (job_id, exit_code),
- self.worker_id)
- if exit_code:
- self.success = False
- if self.stop_on_first_failure:
- self.clear_jobs(self.jobs, self.jobs_lock)
- break
- except:
- print_thread("Job %s crashed" % job_id, self.worker_id)
- print_thread(traceback.format_exc(), self.worker_id)
- self.success = False
- if self.stop_on_first_failure:
- self.clear_jobs(self.jobs, self.jobs_lock)
- break
- print_thread("Exiting", self.worker_id)
- self.completed = True
+ def run(self):
+ print_thread("Starting worker", self.worker_id)
+ while True:
+ (job, job_id) = self.take_job(self.jobs, self.jobs_lock)
+ if job is None:
+ break
+ try:
+ print_thread(
+ "Starting job %s/%s" % (job_id, self.number_of_jobs),
+ self.worker_id)
+ exit_code = job(self.worker_id)
+ print_thread(
+ "Job %s finished with exit code %s" % (job_id, exit_code),
+ self.worker_id)
+ if exit_code:
+ self.success = False
+ if self.stop_on_first_failure:
+ self.clear_jobs(self.jobs, self.jobs_lock)
+ break
+ except:
+ print_thread("Job %s crashed" % job_id, self.worker_id)
+ print_thread(traceback.format_exc(), self.worker_id)
+ self.success = False
+ if self.stop_on_first_failure:
+ self.clear_jobs(self.jobs, self.jobs_lock)
+ break
+ print_thread("Exiting", self.worker_id)
+ self.completed = True
- def take_job(self, jobs, jobs_lock):
- jobs_lock.acquire()
- job_id = self.number_of_jobs - len(jobs) + 1
- job = jobs.pop(0) if jobs else None
- jobs_lock.release()
- return (job, job_id)
+ def take_job(self, jobs, jobs_lock):
+ jobs_lock.acquire()
+ job_id = self.number_of_jobs - len(jobs) + 1
+ job = jobs.pop(0) if jobs else None
+ jobs_lock.release()
+ return (job, job_id)
- def clear_jobs(self, jobs, jobs_lock):
- jobs_lock.acquire()
- jobs.clear()
- jobs_lock.release()
+ def clear_jobs(self, jobs, jobs_lock):
+ jobs_lock.acquire()
+ jobs.clear()
+ jobs_lock.release()
+
def run_in_parallel(jobs, number_of_workers, stop_on_first_failure):
- assert number_of_workers > 0
- if number_of_workers > len(jobs):
- number_of_workers = len(jobs)
- if number_of_workers == 1:
- return run_in_sequence(jobs, stop_on_first_failure)
- jobs_lock = threading.Lock()
- threads = []
- for worker_id in range(1, number_of_workers + 1):
- threads.append(
- WorkerThread(jobs, jobs_lock, stop_on_first_failure, worker_id))
- for thread in threads:
- thread.start()
- for thread in threads:
- thread.join()
- for thread in threads:
- if not thread.completed or not thread.success:
- return 1
- return 0
+ assert number_of_workers > 0
+ if number_of_workers > len(jobs):
+ number_of_workers = len(jobs)
+ if number_of_workers == 1:
+ return run_in_sequence(jobs, stop_on_first_failure)
+ jobs_lock = threading.Lock()
+ threads = []
+ for worker_id in range(1, number_of_workers + 1):
+ threads.append(
+ WorkerThread(jobs, jobs_lock, stop_on_first_failure, worker_id))
+ for thread in threads:
+ thread.start()
+ for thread in threads:
+ thread.join()
+ for thread in threads:
+ if not thread.completed or not thread.success:
+ return 1
+ return 0
+
def run_in_sequence(jobs, stop_on_first_failure):
- combined_exit_code = 0
- worker_id = None
- for job in jobs:
- try:
- exit_code = job(worker_id)
- if exit_code:
- combined_exit_code = exit_code
- if stop_on_first_failure:
- break
- except:
- print(traceback.format_exc())
- combined_exit_code = 1
- if stop_on_first_failure:
- break
- return combined_exit_code
+ combined_exit_code = 0
+ worker_id = None
+ for job in jobs:
+ try:
+ exit_code = job(worker_id)
+ if exit_code:
+ combined_exit_code = exit_code
+ if stop_on_first_failure:
+ break
+ except:
+ print(traceback.format_exc())
+ combined_exit_code = 1
+ if stop_on_first_failure:
+ break
+ return combined_exit_code
+
def print_thread(msg, worker_id):
- if worker_id is None:
- print(msg)
- else:
- print('WORKER %s: %s' % (worker_id, msg))
\ No newline at end of file
+ if worker_id is None:
+ print(msg)
+ else:
+ print('WORKER %s: %s' % (worker_id, msg))