diff options
Diffstat (limited to 'lib/sqlalchemy/util/queue.py')
| -rw-r--r-- | lib/sqlalchemy/util/queue.py | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/lib/sqlalchemy/util/queue.py b/lib/sqlalchemy/util/queue.py index 99ecb4fb3..ca5a3abde 100644 --- a/lib/sqlalchemy/util/queue.py +++ b/lib/sqlalchemy/util/queue.py @@ -230,13 +230,16 @@ class AsyncAdaptedQueue: return self.put_nowait(item) try: - if timeout: + if timeout is not None: return self.await_( asyncio.wait_for(self._queue.put(item), timeout) ) else: return self.await_(self._queue.put(item)) - except asyncio.queues.QueueFull as err: + except ( + asyncio.queues.QueueFull, + asyncio.exceptions.TimeoutError, + ) as err: compat.raise_( Full(), replace_context=err, @@ -254,14 +257,18 @@ class AsyncAdaptedQueue: def get(self, block=True, timeout=None): if not block: return self.get_nowait() + try: - if timeout: + if timeout is not None: return self.await_( asyncio.wait_for(self._queue.get(), timeout) ) else: return self.await_(self._queue.get()) - except asyncio.queues.QueueEmpty as err: + except ( + asyncio.queues.QueueEmpty, + asyncio.exceptions.TimeoutError, + ) as err: compat.raise_( Empty(), replace_context=err, |
