Commit b8d94efa authored by Roger Serwy's avatar Roger Serwy

#5492: merge with 3.3

parents 177d8bfb d96bbf99
...@@ -367,6 +367,7 @@ class ModifiedInterpreter(InteractiveInterpreter): ...@@ -367,6 +367,7 @@ class ModifiedInterpreter(InteractiveInterpreter):
self.port = PORT self.port = PORT
self.original_compiler_flags = self.compile.compiler.flags self.original_compiler_flags = self.compile.compiler.flags
_afterid = None
rpcclt = None rpcclt = None
rpcsubproc = None rpcsubproc = None
...@@ -486,6 +487,8 @@ class ModifiedInterpreter(InteractiveInterpreter): ...@@ -486,6 +487,8 @@ class ModifiedInterpreter(InteractiveInterpreter):
threading.Thread(target=self.__request_interrupt).start() threading.Thread(target=self.__request_interrupt).start()
def kill_subprocess(self): def kill_subprocess(self):
if self._afterid is not None:
self.tkconsole.text.after_cancel(self._afterid)
try: try:
self.rpcclt.listening_sock.close() self.rpcclt.listening_sock.close()
except AttributeError: # no socket except AttributeError: # no socket
...@@ -561,8 +564,8 @@ class ModifiedInterpreter(InteractiveInterpreter): ...@@ -561,8 +564,8 @@ class ModifiedInterpreter(InteractiveInterpreter):
pass pass
# Reschedule myself # Reschedule myself
if not self.tkconsole.closing: if not self.tkconsole.closing:
self.tkconsole.text.after(self.tkconsole.pollinterval, self._afterid = self.tkconsole.text.after(
self.poll_subprocess) self.tkconsole.pollinterval, self.poll_subprocess)
debugger = None debugger = None
...@@ -973,10 +976,6 @@ class PyShell(OutputWindow): ...@@ -973,10 +976,6 @@ class PyShell(OutputWindow):
self.stop_readline() self.stop_readline()
self.canceled = True self.canceled = True
self.closing = True self.closing = True
# Wait for poll_subprocess() rescheduling to stop
self.text.after(2 * self.pollinterval, self.close2)
def close2(self):
return EditorWindow.close(self) return EditorWindow.close(self)
def _close(self): def _close(self):
......
...@@ -455,6 +455,8 @@ C-API ...@@ -455,6 +455,8 @@ C-API
IDLE IDLE
---- ----
- Issue #5492: Avoid traceback when exiting IDLE caused by a race condition.
- Issue #17511: Keep IDLE find dialog open after clicking "Find Next". - Issue #17511: Keep IDLE find dialog open after clicking "Find Next".
Original patch by Sarah K. Original patch by Sarah K.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment