[Python-Dev] patch: try/finally in generators
Guido van Rossum
guido@python.org
Mon, 29 Jul 2002 16:09:05 -0400
> http://www.python.org/sf/584626
>
> This patch removes the limitation of not allowing yield in the try part
> of a try/finally. The dealloc function of a generator checks if the
> generator is still alive and resumes it one last time from the return
> instruction at the end of the code, causing any try/finally blocks to be
> triggered. Any exceptions raised are treated just like exceptions in a
> __del__ finalizer (printed and ignored).
Try building Python in debug mode, and then run the test suite. I get
a fatal error in test_generators (but not when that test is run in
isolation):
Fatal Python error: ../Python/ceval.c:2256 object at 0x40b05654 has negative ref count -1
--Guido van Rossum (home page: http://www.python.org/~guido/)