MCPcopy Index your code
hub / github.com/python/cpython / __init__

Method __init__

Lib/test/libregrtest/run_workers.py:472–498  ·  view source on GitHub ↗
(self, num_workers: int, runtests: RunTests,
                 logger: Logger, results: TestResults)

Source from the content-addressed store, hash-verified

470
471class RunWorkers:
472 def __init__(self, num_workers: int, runtests: RunTests,
473 logger: Logger, results: TestResults) -> None:
474 self.num_workers = num_workers
475 self.runtests = runtests
476 self.log = logger.log
477 self.display_progress = logger.display_progress
478 self.results: TestResults = results
479 self.live_worker_count = 0
480
481 self.output: queue.Queue[QueueContent] = queue.Queue()
482 tests_iter = runtests.iter_tests()
483 self.pending = MultiprocessIterator(tests_iter)
484 self.timeout = runtests.timeout
485 if self.timeout is not None:
486 # Rely on faulthandler to kill a worker process. This timouet is
487 # when faulthandler fails to kill a worker process. Give a maximum
488 # of 5 minutes to faulthandler to kill the worker.
489 self.worker_timeout: float | None = min(self.timeout * 1.5, self.timeout + 5 * 60)
490 else:
491 self.worker_timeout = None
492 self.workers: list[WorkerThread] = []
493
494 jobs = self.runtests.get_jobs()
495 if jobs is not None:
496 # Don't spawn more threads than the number of jobs:
497 # these worker threads would never get anything to do.
498 self.num_workers = min(self.num_workers, jobs)
499
500 def start_workers(self) -> None:
501 self.workers = [WorkerThread(index, self)

Callers 2

__init__Method · 0.45
__init__Method · 0.45

Calls 4

QueueMethod · 0.80
iter_testsMethod · 0.80
get_jobsMethod · 0.80

Tested by

no test coverage detected