diff options
author | Roger Serwy <roger.serwy@gmail.com> | 2013-06-12 03:13:17 (GMT) |
---|---|---|
committer | Roger Serwy <roger.serwy@gmail.com> | 2013-06-12 03:13:17 (GMT) |
commit | 036e84924a0e0bdcc3c17033ea0263a3462825e1 (patch) | |
tree | d51106406f2985dbfded72fae25b8b9bdc72845a | |
parent | 388612042826d7b5f0a12026a960cbfd62491026 (diff) | |
download | cpython-036e84924a0e0bdcc3c17033ea0263a3462825e1.zip cpython-036e84924a0e0bdcc3c17033ea0263a3462825e1.tar.gz cpython-036e84924a0e0bdcc3c17033ea0263a3462825e1.tar.bz2 |
#5492: Avoid traceback when exiting IDLE caused by a race condition.
-rw-r--r-- | Lib/idlelib/PyShell.py | 11 | ||||
-rw-r--r-- | Misc/NEWS | 2 |
2 files changed, 7 insertions, 6 deletions
diff --git a/Lib/idlelib/PyShell.py b/Lib/idlelib/PyShell.py index e9cef9b..7f2b775 100644 --- a/Lib/idlelib/PyShell.py +++ b/Lib/idlelib/PyShell.py @@ -367,6 +367,7 @@ class ModifiedInterpreter(InteractiveInterpreter): self.port = PORT self.original_compiler_flags = self.compile.compiler.flags + _afterid = None rpcclt = None rpcsubproc = None @@ -486,6 +487,8 @@ class ModifiedInterpreter(InteractiveInterpreter): threading.Thread(target=self.__request_interrupt).start() def kill_subprocess(self): + if self._afterid is not None: + self.tkconsole.text.after_cancel(self._afterid) try: self.rpcclt.listening_sock.close() except AttributeError: # no socket @@ -561,8 +564,8 @@ class ModifiedInterpreter(InteractiveInterpreter): pass # Reschedule myself if not self.tkconsole.closing: - self.tkconsole.text.after(self.tkconsole.pollinterval, - self.poll_subprocess) + self._afterid = self.tkconsole.text.after( + self.tkconsole.pollinterval, self.poll_subprocess) debugger = None @@ -973,10 +976,6 @@ class PyShell(OutputWindow): self.stop_readline() self.canceled = 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) def _close(self): @@ -81,6 +81,8 @@ Library IDLE ---- +- Issue #5492: Avoid traceback when exiting IDLE caused by a race condition. + - Issue #17511: Keep IDLE find dialog open after clicking "Find Next". Original patch by Sarah K. |