Utilities/BackgroundClient.py

changeset 6302
8bef84b53fbe
parent 6048
82ad8ec9548c
child 6645
ad476851d7e0
diff -r f488d2cc5841 -r 8bef84b53fbe Utilities/BackgroundClient.py
--- a/Utilities/BackgroundClient.py	Mon May 21 16:53:11 2018 +0200
+++ b/Utilities/BackgroundClient.py	Mon May 21 22:16:21 2018 +0200
@@ -115,7 +115,9 @@
             data = self.connection.recv(length, socket.MSG_PEEK)
         except socket.error:
             pass
-        self.connection.setblocking(True)
+        finally:
+            self.connection.setblocking(True)
+        
         return data
     
     def __cancelled(self):
@@ -127,7 +129,7 @@
         msg = self.__peek(struct.calcsize(b'!II') + 6)
         if msg[-6:] == b"CANCEL":
             # get rid of the message data
-            self.__peek(struct.calcsize(b'!II') + 6)
+            self.__receive(struct.calcsize(b'!II') + 6)
             return True
         else:
             return False
@@ -178,6 +180,8 @@
                         ret = 'Unknown service.'
                 
                 self.__send(fx, fn, ret)
+        except socket.error:
+            pass
         except Exception:
             exctype, excval, exctb = sys.exc_info()
             tbinfofile = io.StringIO()
@@ -187,11 +191,12 @@
             del exctb
             self.__send(
                 'EXCEPTION', '?', [str(exctype), str(excval), tbinfo])
-
-        # Give time to process latest response on server side
-        time.sleep(0.5)
-        self.connection.shutdown(socket.SHUT_RDWR)
-        self.connection.close()
+        
+        finally:
+            # Give time to process latest response on server side
+            time.sleep(0.5)
+            self.connection.shutdown(socket.SHUT_RDWR)
+            self.connection.close()
 
 if __name__ == '__main__':
     if len(sys.argv) != 4:

eric ide

mercurial