diff --git a/aiocometd_ng/transports/base.py b/aiocometd_ng/transports/base.py index 0e0732d..8b15e9a 100644 --- a/aiocometd_ng/transports/base.py +++ b/aiocometd_ng/transports/base.py @@ -1,5 +1,6 @@ """Base transtport abstract class definition""" import asyncio +from asyncio.exceptions import CancelledError import logging from abc import abstractmethod from contextlib import suppress @@ -510,7 +511,7 @@ def _connect_done(self, future: "asyncio.Future[JsonObject]") -> None: "reconnect" in result["advice"]): reconnect_advice = result["advice"]["reconnect"] self._state = TransportState.CONNECTED - except Exception as error: # pylint: disable=broad-except + except (Exception, CancelledError): # pylint: disable=broad-except result = error reconnect_timeout = self._reconnect_timeout if self.state != TransportState.DISCONNECTING: diff --git a/aiocometd_ng/transports/websocket.py b/aiocometd_ng/transports/websocket.py index 47ee9f3..d7d1c3f 100644 --- a/aiocometd_ng/transports/websocket.py +++ b/aiocometd_ng/transports/websocket.py @@ -1,5 +1,6 @@ """Websocket transport class definition""" import asyncio +from asyncio.exceptions import CancelledError import logging from contextlib import suppress from typing import Callable, Optional, AsyncContextManager, Any, Awaitable, \ @@ -257,7 +258,7 @@ def _receive_done(self, future: "asyncio.Task[None]") -> None: # extract the result of the future try: result = future.result() - except Exception as error: # pylint: disable=broad-except + except (Exception, CancelledError) as error: # pylint: disable=broad-except result = error # clear the receive task self._receive_task = None