diff options
author | Chayim <chayim@users.noreply.github.com> | 2023-03-22 18:04:42 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-22 18:04:42 +0200 |
commit | 7b48b1bb34f97e4adf32c12a987ff593dc536aef (patch) | |
tree | 779459c3c1472e29f8e639877759d80dbed9b917 /redis/asyncio/client.py | |
parent | 54a1dce8cbe5b7082588e831e0db22f2aa6a5166 (diff) | |
download | redis-py-4.3.tar.gz |
Diffstat (limited to 'redis/asyncio/client.py')
-rw-r--r-- | redis/asyncio/client.py | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/redis/asyncio/client.py b/redis/asyncio/client.py index 3d59016..5c0b546 100644 --- a/redis/asyncio/client.py +++ b/redis/asyncio/client.py @@ -1349,10 +1349,16 @@ class Pipeline(Redis): # lgtm [py/init-calls-subclass] conn = cast(Connection, conn) try: - return await conn.retry.call_with_retry( - lambda: execute(conn, stack, raise_on_error), - lambda error: self._disconnect_raise_reset(conn, error), + return await asyncio.shield( + conn.retry.call_with_retry( + lambda: execute(conn, stack, raise_on_error), + lambda error: self._disconnect_raise_reset(conn, error), + ) ) + except asyncio.CancelledError: + # not supposed to be possible, yet here we are + await conn.disconnect(nowait=True) + raise finally: await self.reset() |