From a7bacf4424e8e6d4ffb8bfc5c8b36801e7e8aa9e Mon Sep 17 00:00:00 2001 From: Vojtech Tuma Date: Sat, 13 May 2023 11:59:06 +0200 Subject: [PATCH] Add timeout to JoinableQueue.join --- Lib/multiprocessing/queues.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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