Staging
v0.5.1
https://github.com/python/cpython
Revision dd0e087edc8f1e4d2c0913236b1a62a77d9db6d8 authored by Martin Teichmann on 28 January 2018, 04:17:46 UTC, committed by Nick Coghlan on 28 January 2018, 04:17:46 UTC
The arguments to a generator function which is declared as a
contextmanager are stored inside the context manager, and
thus are kept alive, even when it is used as a regular context
manager, and not as a function decorator (where it needs
the original arguments to recreate the generator on each
call).

This is a possible unnecessary memory leak, so this changes
contextmanager.__enter__ to release the saved arguments,
as that method being called means that particular CM instance
isn't going to need to recreate the underlying generator.

Patch by Martin Teichmann.
1 parent c4b1248
History
Tip revision: dd0e087edc8f1e4d2c0913236b1a62a77d9db6d8 authored by Martin Teichmann on 28 January 2018, 04:17:46 UTC
bpo-30306: release arguments of contextmanager (GH-1500)
Tip revision: dd0e087
File Mode Size
c-api
data
distributing
distutils
extending
faq
howto
includes
install
installing
library
reference
tools
tutorial
using
whatsnew
Makefile -rw-r--r-- 7.3 KB
README.rst -rw-r--r-- 4.3 KB
about.rst -rw-r--r-- 1.5 KB
bugs.rst -rw-r--r-- 4.2 KB
conf.py -rw-r--r-- 6.1 KB
contents.rst -rw-r--r-- 538 bytes
copyright.rst -rw-r--r-- 451 bytes
docutils.conf -rw-r--r-- 56 bytes
glossary.rst -rw-r--r-- 48.7 KB
license.rst -rw-r--r-- 43.4 KB
make.bat -rw-r--r-- 5.1 KB

README.rst

back to top