[Python-Dev] funny leak (original) (raw)
Neal Norwitz neal@metaslash.com
Mon, 24 Mar 2003 08:43:16 -0500
- Previous message: [Python-Dev] funny leak
- Next message: [Python-Dev] funny leak
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Mon, Mar 24, 2003 at 01:40:44PM +0100, Christian Tismer wrote:
I just tested generators and found a memory leak. (Has nothing to do with generators). The following code adds one to the overall refcount and gc cannot reclaim it. def conjoin(gs): def gen(): gs # unbreakable cycle gen # unless one is commented out
With current CVS:
>>> gc.collect()
0
[23150 refs]
>>> conjoin(1)
[23160 refs]
>>> conjoin(1)
[23170 refs]
>>> gc.collect()
8
[23151 refs]
>>> conjoin(1)
[23161 refs]
>>> conjoin(1)
[23171 refs]
>>> gc.collect()
8
[23151 refs]
>>> conjoin(1)
[23161 refs]
>>> conjoin(1)
[23171 refs]
>>> gc.collect()
8
[23151 refs]
One ref may be leaked the first time gc.collect() is called with garbage (23150 -> 23151). But after that, no more refs are leaked (ref count stays at 23151).
Neal
- Previous message: [Python-Dev] funny leak
- Next message: [Python-Dev] funny leak
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]