def __init__(self, worker_count=None, *args, **kwargs):
    """Initializes a task executor.
    This may take a bit to run, as the process pool is primed.

    Args:
      worker_count: Number of worker threads to use when building. None to use
          as many processors as are available.
    """
    super(MultiProcessTaskExecutor, self).__init__(*args, **kwargs)
    self.worker_count = worker_count
    self._waiting_deferreds = {}

    try:
      self._pool = multiprocessing.Pool(processes=self.worker_count,
                                        initializer=_task_initializer)
    except __HOLE__ as e: # pragma: no cover
      print e
      print 'Unable to initialize multiprocessing!'
      if sys.platform == 'cygwin':
        print ('Cygwin has known issues with multiprocessing and there\'s no '
               'workaround. Boo!')
      print 'Try running with -j1 to disable multiprocessing'
      raise
dataset/ETHPy150Open google/anvil-build/anvil/task.py/MultiProcessTaskExecutor.__init__