Author Martin.Teichmann
Recipients Martin.Teichmann
Date 2017-05-08.14:04:41
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1494252281.4.0.796080303271.issue30306@psf.upfronthosting.co.za>
In-reply-to
Content
The arguments of a function which was decorated to be a context manager are stored inside the context manager, and are thus kept alive.

This is a memory leak.

Example:

    @contextmanager
    def f(a):
        do_something_with(a)
        a = None  # should release the memory
        yield

if this is now called with something big, say

    with f(something_really_huge):
        pass

then this something_really_huge is kept alive during the with statement, even though the function explicitly let go of it.
History
Date User Action Args
2017-05-08 14:04:41Martin.Teichmannsetrecipients: + Martin.Teichmann
2017-05-08 14:04:41Martin.Teichmannsetmessageid: <1494252281.4.0.796080303271.issue30306@psf.upfronthosting.co.za>
2017-05-08 14:04:41Martin.Teichmannlinkissue30306 messages
2017-05-08 14:04:41Martin.Teichmanncreate