def __init__(self, job_list, max_workers):
        super(_Pool, self).__init__()

        if max_workers < 1:
            raise ValueError(
                'invalid value for max_workers: {}'.format(max_workers))

        # pychecker makes us do this, it won't recognise that
        # multiprocessing.queues is a thing.
        mp = multiprocessing
        self._job_index_queue = mp.queues.SimpleQueue()
        self._results_queue = mp.queues.SimpleQueue()

        # create the workers
        self._worker_list = []
        num_workers = min(max_workers, len(job_list))
        for _ in xrange(num_workers):
            worker = _start_worker_process(
                job_list, self._job_index_queue, self._results_queue)
            self._worker_list.append(worker)
dataset/ETHPy150Open bloomberg/phabricator-tools/py/phl/phlmp_cyclingpool.py/_Pool.__init__/original