summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorKurt B. Kaiser <kbk@shore.net>2003-03-12 20:52:00 (GMT)
committerKurt B. Kaiser <kbk@shore.net>2003-03-12 20:52:00 (GMT)
commit94afd3095ee37dfcc672ebcd6ade8a3b00a39a69 (patch)
treef349081b0bd6e5157bc5b0e0c38acb4180ee89d6 /Lib
parentb1fbf855a37edb75c4438f773f8f2b9c7cf1cf4a (diff)
downloadcpython-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.txt16
-rw-r--r--Lib/idlelib/rpc.py16
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: