From: egonw_ <re...@bu...> - 2008-09-01 06:55:25
|
New submission from egonw_ <ego...@si...>: There is an incompatibility with CPython 2.5 w.r.t. to caling close on iterator generators. Please consider the following code: ----------- def gen3(n): try: for x in range(n): print "gen3 for x, before for y, x:", x for y in range(x+1): print "gen3 for y, y:", y yield y print "gen3 for x, after for y, x:", x finally: print "gen3 finally" def test3(): try: generated = gen3(3) for x in generated: print "test3 for x, x:", x break generated.close() finally: print "test3 finally" ---- The output of CPython is: gen3 for x, before for y, x: 0 gen3 for y, y: 0 test3 for x, x: 0 gen3 finally test3 finally The output of Jython is: gen3 for x, before for y, x: 0 gen3 for y, y: 0 test3 for x, x: 0 test3 finally It seems that closing the iterator generator does not run the finally clause of gen3. ---------- components: Core messages: 3466 nosy: egonw_ severity: major status: open title: calling close on an iterator generator type: behaviour versions: 2.5alpha1 _______________________________________ Jython tracker <re...@bu...> <http://bugs.jython.org/issue1117> _______________________________________ |