From: Kurt B. Kaiser Date: Tue, 11 Mar 2003 22:55:56 +0000 (+0000) Subject: M rpc.py X-Git-Tag: v2.3c1~1476 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7c2213206924dabbc8a674ee74085a07f0fc6c51;p=python M rpc.py M run.py 1. Clarify that rpc.SocketIO._getresponse() currently blocks on socket. 2. Improve exception handling in subprocess when GUI terminates abruptly. --- diff --git a/Lib/idlelib/rpc.py b/Lib/idlelib/rpc.py index 2939f5fa83..9895ac8869 100644 --- a/Lib/idlelib/rpc.py +++ b/Lib/idlelib/rpc.py @@ -240,9 +240,9 @@ class SocketIO: self.debug("_getresponse:myseq:", myseq) if threading.currentThread() is self.mainthread: # Main thread: does all reading of requests or responses - # Loop here until there is message traffic on the socket + # Loop here, blocking each time until socket is ready. while 1: - response = self.pollresponse(myseq, None) + response = self.pollresponse(myseq, wait=None) if response is not None: return response else: @@ -346,7 +346,7 @@ class SocketIO: message = self.pollmessage(wait) if message is None: # socket not ready return None - wait = 0.0 + #wait = 0.0 # poll on subsequent passes instead of blocking seq, resq = message self.debug("pollresponse:%d:myseq:%s" % (seq, myseq)) if resq[0] == "call": diff --git a/Lib/idlelib/run.py b/Lib/idlelib/run.py index 6ab80444de..d79f3d73d0 100644 --- a/Lib/idlelib/run.py +++ b/Lib/idlelib/run.py @@ -92,7 +92,7 @@ class Executive: if sys.stdout.softspace: sys.stdout.softspace = 0 sys.stdout.write("\n") - except AttributeError: + except (AttributeError, EOFError): pass def cleanup_traceback(self, tb, exclude):