DebugClients/Python/DebugClientBase.py

branch
maintenance
changeset 6050
25a4ddb25ca4
parent 6048
82ad8ec9548c
child 6060
57365172e94f
diff -r 6914826302ae -r 25a4ddb25ca4 DebugClients/Python/DebugClientBase.py
--- a/DebugClients/Python/DebugClientBase.py	Sat Dec 02 12:40:52 2017 +0100
+++ b/DebugClients/Python/DebugClientBase.py	Sun Dec 31 18:27:40 2017 +0100
@@ -1,6 +1,6 @@
 # -*- coding: utf-8 -*-
 
-# Copyright (c) 2002 - 2017 Detlev Offenbach <detlev@die-offenbachs.de>
+# Copyright (c) 2002 - 2018 Detlev Offenbach <detlev@die-offenbachs.de>
 #
 
 """
@@ -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