diff --git a/Lib/multiprocessing/queues.py b/Lib/multiprocessing/queues.py index 981599acf5ef26..6e22a951c2b3d4 100644 --- a/Lib/multiprocessing/queues.py +++ b/Lib/multiprocessing/queues.py @@ -345,10 +345,14 @@ def task_done(self): if self._unfinished_tasks._semlock._is_zero(): self._cond.notify_all() - def join(self): + def join(self, timeout=None) -> None: with self._cond: if not self._unfinished_tasks._semlock._is_zero(): - self._cond.wait() + self._cond.wait(timeout=timeout) + + def is_done(self) -> bool: + with self._cond: + return self._unfinished_tasks._semlock._is_zero() # # Simplified Queue type -- really just a locked pipe