summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/util/queue.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/util/queue.py')
-rw-r--r--lib/sqlalchemy/util/queue.py15
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,