Skip to content

Commit 78d1124

Browse files
fix AsyncClient::wait unexpected return after success reconnect (miguelgrinberg#1407)
* fix AsyncClient::wait unexpected return after success reconnect AsyncClient::wait use sleep(1) call to wait to start reconnect task. Sometimes reconnect is faster then 1 second, and wait returns while connection to server is established. Added one check to avoid this situation * Making added check easier to understand in source code * fix Client::wait unexpected return after success reconnect * fixes --------- Co-authored-by: Miguel Grinberg <miguel.grinberg@gmail.com>
1 parent db642bb commit 78d1124

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

src/socketio/async_client.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,9 @@ async def wait(self):
189189
await self.eio.wait()
190190
await self.sleep(1) # give the reconnect task time to start up
191191
if not self._reconnect_task:
192+
if self.eio.state == 'connected': # pragma: no cover
193+
# connected while sleeping above
194+
continue
192195
break
193196
await self._reconnect_task
194197
if self.eio.state != 'connected':

src/socketio/client.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,12 @@ def wait(self):
180180
self.eio.wait()
181181
self.sleep(1) # give the reconnect task time to start up
182182
if not self._reconnect_task:
183-
break
183+
if self.eio.state == 'connected': # pragma: no cover
184+
# connected while sleeping above
185+
continue
186+
else:
187+
# the reconnect task gave up
188+
break
184189
self._reconnect_task.join()
185190
if self.eio.state != 'connected':
186191
break

0 commit comments

Comments
 (0)