gh-92841: Fix asyncio's RuntimeError: Event loop is closed (GH-92842) (GH-92904)
(cherry picked from commit 33880b4b1c60f54aa9e7fa02698a3c82eafe3dc7)
Co-authored-by: Oleg Iarygin <oleg@arhadthedev.net>
diff --git a/Lib/asyncio/proactor_events.py b/Lib/asyncio/proactor_events.py
index 411685b..9657f96 100644
--- a/Lib/asyncio/proactor_events.py
+++ b/Lib/asyncio/proactor_events.py
@@ -113,7 +113,7 @@ def close(self):
def __del__(self, _warn=warnings.warn):
if self._sock is not None:
_warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
- self.close()
+ self._sock.close()
def _fatal_error(self, exc, message='Fatal error on pipe transport'):
try:
diff --git a/Misc/NEWS.d/next/Windows/2022-05-16-11-45-06.gh-issue-92841.NQx107.rst b/Misc/NEWS.d/next/Windows/2022-05-16-11-45-06.gh-issue-92841.NQx107.rst
new file mode 100644
index 0000000..5e1897e
--- /dev/null
+++ b/Misc/NEWS.d/next/Windows/2022-05-16-11-45-06.gh-issue-92841.NQx107.rst
@@ -0,0 +1,2 @@
+:mod:`asyncio` no longer throws ``RuntimeError: Event loop is closed`` on
+interpreter exit after asynchronous socket activity. Patch by Oleg Iarygin.