diff options
Diffstat (limited to 'sleekxmpp/xmlstream')
-rw-r--r-- | sleekxmpp/xmlstream/scheduler.py | 3 | ||||
-rw-r--r-- | sleekxmpp/xmlstream/xmlstream.py | 7 |
2 files changed, 6 insertions, 4 deletions
diff --git a/sleekxmpp/xmlstream/scheduler.py b/sleekxmpp/xmlstream/scheduler.py index b932b0a7..b1b81439 100644 --- a/sleekxmpp/xmlstream/scheduler.py +++ b/sleekxmpp/xmlstream/scheduler.py @@ -137,7 +137,7 @@ class Scheduler(object): """Process scheduled tasks.""" self.run = True try: - while self.run: + while self.run and (self.parentstop is None or not self.parentstop.isSet()): wait = 1 updated = False if self.schedule: @@ -168,6 +168,7 @@ class Scheduler(object): except KeyboardInterrupt: self.run = False if self.parentstop is not None: + logging.debug("stopping parent") self.parentstop.set() except SystemExit: self.run = False diff --git a/sleekxmpp/xmlstream/xmlstream.py b/sleekxmpp/xmlstream/xmlstream.py index 41ee8329..c8280c33 100644 --- a/sleekxmpp/xmlstream/xmlstream.py +++ b/sleekxmpp/xmlstream/xmlstream.py @@ -275,6 +275,7 @@ class XMLStream(object): self.socket = ssl_socket try: + logging.debug("Connecting to %s:%s" % self.address) self.socket.connect(self.address) self.set_socket(self.socket, ignore=True) #this event is where you should set your application state @@ -328,10 +329,10 @@ class XMLStream(object): Reset the stream's state and reconnect to the server. """ logging.debug("reconnecting...") - self.state.transition('connected', 'disconnected', wait=0.0, + self.state.transition('connected', 'disconnected', wait=2.0, func=self._disconnect, args=(True,)) return self.state.transition('disconnected', 'connected', - wait=0.0, func=self._connect) + wait=2.0, func=self._connect) def set_socket(self, socket, ignore=False): """ @@ -669,7 +670,7 @@ class XMLStream(object): # The body of this loop will only execute once per connection. # Additional passes will be made only if an error occurs and # reconnecting is permitted. - while not self.stop.isSet() and firstrun or self.auto_reconnect: + while firstrun or (self.auto_reconnect and not self.stop.isSet()): firstrun = False try: if self.is_client: |