Skip to content

Instantly share code, notes, and snippets.

@lrowe
Forked from sigmavirus24/example.py
Created July 11, 2015 05:33
Show Gist options
  • Save lrowe/95c5e76a86a27eb00b49 to your computer and use it in GitHub Desktop.
Save lrowe/95c5e76a86a27eb00b49 to your computer and use it in GitHub Desktop.
import gc
closed = False
def generator(iterable, held=None):
global closed
try:
for chunk in iterable:
yield chunk
except GeneratorExit:
print('generator exit')
finally:
print('held: %r' % held)
print('closing')
closed = True
h = []
g = generator(range(5), h)
h.append(g)
del h
for i in g:
print('break: %r' % closed)
break
print('before del: %r' % closed)
del g
print('after del: %r' % closed)
print('before gc.collect: %r' % closed)
gc.collect()
print('after gc.collect: %r' % closed)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment