[lit] Do not create semaphores when we do not need them
Parallelism groups and semaphores are only required for parallel execution. llvm-svn: 375055
This commit is contained in:
parent
bb98234931
commit
640d6de429
|
|
@ -19,11 +19,6 @@ class Run(object):
|
|||
def __init__(self, lit_config, tests):
|
||||
self.lit_config = lit_config
|
||||
self.tests = tests
|
||||
# Set up semaphores to limit parallelism of certain classes of tests.
|
||||
self.parallelism_semaphores = {
|
||||
k : NopSemaphore() if v is None else
|
||||
multiprocessing.BoundedSemaphore(v)
|
||||
for k, v in lit_config.parallelism_groups.items()}
|
||||
|
||||
def execute_tests(self, progress_callback, workers, max_time):
|
||||
"""
|
||||
|
|
@ -76,14 +71,18 @@ class Run(object):
|
|||
if max_time:
|
||||
deadline = time.time() + max_time
|
||||
|
||||
semaphores = {
|
||||
k: NopSemaphore() if v is None else
|
||||
multiprocessing.BoundedSemaphore(v) for k, v in
|
||||
self.lit_config.parallelism_groups.items()}
|
||||
|
||||
# Start a process pool. Copy over the data shared between all test runs.
|
||||
# FIXME: Find a way to capture the worker process stderr. If the user
|
||||
# interrupts the workers before we make it into our task callback, they
|
||||
# will each raise a KeyboardInterrupt exception and print to stderr at
|
||||
# the same time.
|
||||
pool = multiprocessing.Pool(workers, lit.worker.initializer,
|
||||
(self.lit_config,
|
||||
self.parallelism_semaphores))
|
||||
(self.lit_config, semaphores))
|
||||
|
||||
# Install a console-control signal handler on Windows.
|
||||
if lit.util.win32api is not None:
|
||||
|
|
|
|||
Loading…
Reference in New Issue