diff --git a/utilities/workers/queue_proxy_wrapper.py b/utilities/workers/queue_proxy_wrapper.py index 633efece..e2467641 100644 --- a/utilities/workers/queue_proxy_wrapper.py +++ b/utilities/workers/queue_proxy_wrapper.py @@ -10,6 +10,7 @@ class QueueProxyWrapper: """ Wrapper for an underlying queue proxy which also stores maxsize. + `maxsize <= 0` means the queue has infinite size. """ __QUEUE_TIMEOUT = 0.1 # seconds @@ -29,8 +30,7 @@ def fill_queue_with_sentinel(self, timeout: float = 0.0) -> None: timeout = self.__QUEUE_TIMEOUT try: - self.queue.put(None, timeout=timeout) - for _ in range(1, self.maxsize): + for _ in range(self.maxsize): self.queue.put(None, timeout=timeout) except queue.Full: return @@ -45,7 +45,8 @@ def drain_queue(self, timeout: float = 0.0) -> None: timeout = self.__QUEUE_TIMEOUT try: - self.queue.get(timeout=timeout) + for _ in range(self.maxsize): + self.queue.get(timeout=timeout) except queue.Empty: return