diff options
author | Victor Stinner <vstinner@redhat.com> | 2019-01-10 10:24:40 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-10 10:24:40 (GMT) |
commit | fb2c3465f09e1f720cdae7eca87d62125a327fd9 (patch) | |
tree | a1cfdcf7ea81295f3a955bcdec2275b8e8967965 /Lib/asyncio/windows_utils.py | |
parent | 9b07681c09182d4b9d23cd52566a4992b8afecbb (diff) | |
download | cpython-fb2c3465f09e1f720cdae7eca87d62125a327fd9.zip cpython-fb2c3465f09e1f720cdae7eca87d62125a327fd9.tar.gz cpython-fb2c3465f09e1f720cdae7eca87d62125a327fd9.tar.bz2 |
asyncio: __del__() keep reference to warnings.warn (GH-11491)
* asyncio: __del__() keep reference to warnings.warn
The __del__() methods of asyncio classes now keep a strong reference
to the warnings.warn() to be able to display the ResourceWarning
warning in more cases. Ensure that the function remains available if
instances are destroyed late during Python shutdown (while module
symbols are cleared).
* Rename warn parameter to _warn
"_warn" name is a hint that it's not the regular warnings.warn()
function.
Diffstat (limited to 'Lib/asyncio/windows_utils.py')
-rw-r--r-- | Lib/asyncio/windows_utils.py | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/Lib/asyncio/windows_utils.py b/Lib/asyncio/windows_utils.py index 9e22f6e..ef277fa 100644 --- a/Lib/asyncio/windows_utils.py +++ b/Lib/asyncio/windows_utils.py @@ -107,10 +107,9 @@ class PipeHandle: CloseHandle(self._handle) self._handle = None - def __del__(self): + def __del__(self, _warn=warnings.warn): if self._handle is not None: - warnings.warn(f"unclosed {self!r}", ResourceWarning, - source=self) + _warn(f"unclosed {self!r}", ResourceWarning, source=self) self.close() def __enter__(self): |