summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--slixmpp/xmlstream/xmlstream.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/slixmpp/xmlstream/xmlstream.py b/slixmpp/xmlstream/xmlstream.py
index c84b40e1..2cc5fe17 100644
--- a/slixmpp/xmlstream/xmlstream.py
+++ b/slixmpp/xmlstream/xmlstream.py
@@ -585,7 +585,11 @@ class XMLStream(asyncio.BaseProtocol):
when the server acknowledgement is received), call connect()
"""
log.debug("reconnecting...")
- self.add_event_handler('disconnected', lambda event: self.connect(), disposable=True)
+ async def handler(event):
+ # We yield here to allow synchronous handlers to work first
+ await asyncio.sleep(0, loop=self.loop)
+ self.connect()
+ self.add_event_handler('disconnected', handler, disposable=True)
self.disconnect(wait, reason)
def configure_socket(self):