diff --git a/Lib/multiprocessing/queues.py b/Lib/multiprocessing/queues.py index daf9ee94a19431..bc0434ad37a199 100644 --- a/Lib/multiprocessing/queues.py +++ b/Lib/multiprocessing/queues.py @@ -327,10 +327,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