diff --git a/Lib/multiprocessing/pool.py b/Lib/multiprocessing/pool.py index a545f3c..91db17a 100644 --- a/Lib/multiprocessing/pool.py +++ b/Lib/multiprocessing/pool.py @@ -540,10 +540,13 @@ class Pool(object): self._worker_handler._state = TERMINATE self._terminate() - def join(self): + def join(self, timeout=None): util.debug('joining pool') assert self._state in (CLOSE, TERMINATE) - self._worker_handler.join() + self._worker_handler.join(timeout=timeout) + if self._worker_handler.is_alive(): + util.debug('pool join timed out') + raise TimeoutError self._task_handler.join() self._result_handler.join() for p in self._pool: