]> git.michaelhowe.org Git - packages/p/paho-mqtt.git/commitdiff
Use loop_forever() in _thread_main().
authorRoger Light <roger@atchoo.org>
Sat, 22 Jun 2013 21:10:30 +0000 (22:10 +0100)
committerRoger Light <roger@atchoo.org>
Mon, 3 Feb 2014 21:16:19 +0000 (21:16 +0000)
src/paho/mqtt/client.py

index be09c5aead34583c717c5ed3dcf9a7b77252a79d..564d1110e01653cb30f201d7df13913f21f46939 100755 (executable)
@@ -983,10 +983,16 @@ class Client:
             rc = MQTT_ERR_SUCCESS
             while rc == MQTT_ERR_SUCCESS:
                 rc = self.loop(timeout, max_packets)
+                if self._thread_terminate == True:
+                    rc = 1
+                    run = False
 
+            self._state_mutex_acquire()
             if self._state == mqtt_cs_disconnecting:
                 run = False
+                self._state_mutex.release()
             else:
+                self._state_mutex.release()
                 time.sleep(1)
                 self.reconnect()
         return rc
@@ -1742,20 +1748,5 @@ class Client:
         else:
             self._state_mutex.release()
 
-        while run:
-            rc = MQTT_ERR_SUCCESS
-            while rc == MQTT_ERR_SUCCESS:
-                rc = self.loop()
-                if self._thread_terminate:
-                    rc = 1
-                    run = False
-
-            self._state_mutex.acquire()
-            if self._state == mqtt_cs_disconnecting:
-                run = False
-                self._state_mutex.release()
-            else:
-                self._state_mutex.release()
-                time.sleep(1)
-                self.reconnect()
+        self.loop_forever()