bpo-30306: release arguments of contextmanager (GH-1500)
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.
M
Martin Teichmann committed
dd0e087edc8f1e4d2c0913236b1a62a77d9db6d8
Parent: c4b1248
Committed by Nick Coghlan <ncoghlan@gmail.com>
on 1/28/2018, 4:17:46 AM