diff --git a/src/socketio/async_client.py b/src/socketio/async_client.py index 7bfd1ac3..0d85aa18 100644 --- a/src/socketio/async_client.py +++ b/src/socketio/async_client.py @@ -189,6 +189,9 @@ async def wait(self): await self.eio.wait() await self.sleep(1) # give the reconnect task time to start up if not self._reconnect_task: + if self.eio.state == 'connected': # pragma: no cover + # connected while sleeping above + continue break await self._reconnect_task if self.eio.state != 'connected': diff --git a/src/socketio/client.py b/src/socketio/client.py index b5fa0b4e..00d7961e 100644 --- a/src/socketio/client.py +++ b/src/socketio/client.py @@ -180,7 +180,12 @@ def wait(self): self.eio.wait() self.sleep(1) # give the reconnect task time to start up if not self._reconnect_task: - break + if self.eio.state == 'connected': # pragma: no cover + # connected while sleeping above + continue + else: + # the reconnect task gave up + break self._reconnect_task.join() if self.eio.state != 'connected': break