diff options
author | Kurt B. Kaiser <kbk@shore.net> | 2003-03-12 20:52:00 (GMT) |
---|---|---|
committer | Kurt B. Kaiser <kbk@shore.net> | 2003-03-12 20:52:00 (GMT) |
commit | 94afd3095ee37dfcc672ebcd6ade8a3b00a39a69 (patch) | |
tree | f349081b0bd6e5157bc5b0e0c38acb4180ee89d6 /Lib | |
parent | b1fbf855a37edb75c4438f773f8f2b9c7cf1cf4a (diff) | |
download | cpython-94afd3095ee37dfcc672ebcd6ade8a3b00a39a69.zip cpython-94afd3095ee37dfcc672ebcd6ade8a3b00a39a69.tar.gz cpython-94afd3095ee37dfcc672ebcd6ade8a3b00a39a69.tar.bz2 |
Move setting of ioready 'wait' earlier in call chain, to
rpc.SocketIO.main() and asyncreturn(). Improve comment.
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: |