[Python-Dev] funny leak

Christian Tismer tismer@tismer.com
Mon, 24 Mar 2003 15:04:46 +0100


Neal Norwitz wrote:
> 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:
...

> 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).

No, this is not the point. Don't call the function
at all, just execute the above code and call
gc.collect(). You will see one reference eaten
every time you repeat this.

ciao - chris

-- 
Christian Tismer             :^)   <mailto:tismer@tismer.com>
Mission Impossible 5oftware  :     Have a break! Take a ride on Python's
Johannes-Niemeyer-Weg 9a     :    *Starship* http://starship.python.net/
14109 Berlin                 :     PGP key -> http://wwwkeys.pgp.net/
work +49 30 89 09 53 34  home +49 30 802 86 56  pager +49 173 24 18 776
PGP 0x57F3BF04       9064 F4E1 D754 C2FF 1619  305B C09C 5A3B 57F3 BF04
      whom do you want to sponsor today?   http://www.stackless.com/