
# Test case taken from test_generators
# See http://mail.python.org/pipermail/python-dev/2005-November/058339.html

from itertools import tee
import gc

def leak():
    def inner():
        def fib():
            def yield_identity_forever(g):
                while 1:
                    yield g
            def _fib():
                for i in yield_identity_forever(head):
                    yield i
            head, tail, result = tee(_fib(), 3)
            return result

        x = fib()
        x.next()
    inner()
    gc.collect() ; gc.collect()
    # this is expected to return 0
    return gc.collect()
