DebugClients/Python/DebugClientBase.py

changeset 6040
dcf8c50ed06a
parent 5966
3325ecd87c7c
child 6048
82ad8ec9548c
diff -r d52e90757805 -r dcf8c50ed06a DebugClients/Python/DebugClientBase.py
--- a/DebugClients/Python/DebugClientBase.py	Sat Dec 23 16:42:21 2017 +0100
+++ b/DebugClients/Python/DebugClientBase.py	Sun Dec 24 15:19:00 2017 +0100
@@ -1014,19 +1014,24 @@
         Public method called when there is data ready to be read.
         
         @param stream file like object that has data to be written
+        @return flag indicating an error condition
+        @rtype bool
         """
+        error = False
+        
+        self.lockClient()
         try:
-            self.lockClient()
             command = stream.readCommand()
-            self.unlockClient()
         except Exception:
-            return
+            error = True
+        self.unlockClient()
 
-        if len(command) == 0:
+        if len(command) == 0 or error:
             self.sessionClose()
-            return
+        else:
+            self.handleJsonCommand(command)
         
-        self.handleJsonCommand(command)
+        return error
 
     def writeReady(self, stream):
         """
@@ -1079,7 +1084,9 @@
                 continue
 
             if self.readstream in rrdy:
-                self.readReady(self.readstream)
+                error = self.readReady(self.readstream)
+                if error:
+                    break
 
             if self.writestream in wrdy:
                 self.writeReady(self.writestream)

eric ide

mercurial