diff options
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/idlelib/NEWS.txt | 16 | ||||
-rw-r--r-- | Lib/idlelib/rpc.py | 16 |
2 files changed, 24 insertions, 8 deletions
diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt index a0f1869..12e677d 100644 --- a/Lib/idlelib/NEWS.txt +++ b/Lib/idlelib/NEWS.txt @@ -7,11 +7,27 @@ What's New in IDLEfork 0.9 Alpha 3? *Release date: xx-xxx-2003* +- Implemented the 'interrupt' extension module, which allows a subthread + to raise a KeyboardInterrupt in the main thread. + +- Attempting to save the shell raised an error related to saving + breakpoints, which are not implemented in the shell + +- Provide a correct message when 'exit' or 'quit' are entered at the + IDLE command prompt SF 695861 + +- Eliminate extra blank line in shell output caused by not flushing + stdout when user code ends with an unterminated print. SF 695861 + +- Moved responsibility for exception formatting (i.e. pruning IDLE internal + calls) out of rpc.py into the client and server. + - Exit IDLE cleanly even when doing subprocess I/O - Handle subprocess interrupt in Windows with an RPC message. - Calling Run will restart the subprocess even if user code is running. + SF RFE 661321 - Restart the subprocess if it terminates itself. (VPython programs do that) diff --git a/Lib/idlelib/rpc.py b/Lib/idlelib/rpc.py index 9895ac8..615c1f4 100644 --- a/Lib/idlelib/rpc.py +++ b/Lib/idlelib/rpc.py @@ -192,7 +192,7 @@ class SocketIO: def asyncreturn(self, seq): self.debug("asyncreturn:%d:call getresponse(): " % seq) - response = self.getresponse(seq) + response = self.getresponse(seq, wait=None) self.debug(("asyncreturn:%d:response: " % seq), response) return self.decoderesponse(response) @@ -211,17 +211,17 @@ class SocketIO: def mainloop(self): """Listen on socket until I/O not ready or EOF - pollpacket() will loop looking for seq number None, which never - comes. The loop will exit when self.ioready() returns 0. + Main thread pollresponse() will loop looking for seq number None, which + never comes, and exit on EOFError. """ try: - self.getresponse(None) + self.getresponse(myseq=None, wait=None) except EOFError: pass - def getresponse(self, myseq): - response = self._getresponse(myseq) + def getresponse(self, myseq, wait): + response = self._getresponse(myseq, wait) if response is not None: how, what = response if how == "OK": @@ -236,13 +236,13 @@ class SocketIO: # XXX Check for other types -- not currently needed return obj - def _getresponse(self, myseq): + def _getresponse(self, myseq, wait): self.debug("_getresponse:myseq:", myseq) if threading.currentThread() is self.mainthread: # Main thread: does all reading of requests or responses # Loop here, blocking each time until socket is ready. while 1: - response = self.pollresponse(myseq, wait=None) + response = self.pollresponse(myseq, wait) if response is not None: return response else: |