]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
[3.13] gh-120221: Support KeyboardInterrupt in asyncio REPL (GH-123795) (#123799)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Fri, 6 Sep 2024 20:25:19 +0000 (22:25 +0200)
committerGitHub <noreply@github.com>
Fri, 6 Sep 2024 20:25:19 +0000 (22:25 +0200)
commit5c3078d6e597c7e50b3b0da37f493e2dfca17a6a
treec8f16cbf540fee5b7527d51b3b9ff7ed9c8b065e
parent66b15381f187f00f0fd91575f9f11e14bfddeeca
[3.13] gh-120221: Support KeyboardInterrupt in asyncio REPL (GH-123795) (#123799)

This switches the main pyrepl event loop to always be non-blocking so that it
can listen to incoming interruptions from other threads.

This also resolves invalid display of exceptions from other threads
(gh-123178).

This also fixes freezes with pasting and an active input hook.
(cherry picked from commit 033510e11dff742d9626b9fd895925ac77f566f1)

Co-authored-by: Ɓukasz Langa <lukasz@langa.pl>
Lib/_pyrepl/_threading_handler.py [new file with mode: 0644]
Lib/_pyrepl/reader.py
Lib/_pyrepl/unix_console.py
Lib/_pyrepl/windows_console.py
Lib/asyncio/__main__.py
Lib/test/test_pyrepl/support.py
Lib/test/test_repl.py
Misc/NEWS.d/next/Core_and_Builtins/2024-09-06-19-23-44.gh-issue-120221.giJEDT.rst [new file with mode: 0644]