SIGN IN SIGN UP

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