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
+ 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()
+ x = fib()
+ x.next()
+ inner()
+ gc.collect() ; gc.collect()
+ # this is expected to return 0
+ return gc.collect()