Author: Armin Rigo <ar...@tunes.org> Branch: Changeset: r48123:1d42dc6c3971 Date: 2011-10-17 15:41 +0200 http://bitbucket.org/pypy/pypy/changeset/1d42dc6c3971/
Log: In the memmgr, free loops that have been marked as 'invalidated' too. diff --git a/pypy/jit/metainterp/memmgr.py b/pypy/jit/metainterp/memmgr.py --- a/pypy/jit/metainterp/memmgr.py +++ b/pypy/jit/metainterp/memmgr.py @@ -68,7 +68,8 @@ debug_print("Loop tokens before:", oldtotal) max_generation = self.current_generation - (self.max_age-1) for looptoken in self.alive_loops.keys(): - if 0 <= looptoken.generation < max_generation: + if (0 <= looptoken.generation < max_generation or + looptoken.invalidated): del self.alive_loops[looptoken] newtotal = len(self.alive_loops) debug_print("Loop tokens freed: ", oldtotal - newtotal) diff --git a/pypy/jit/metainterp/test/test_memmgr.py b/pypy/jit/metainterp/test/test_memmgr.py --- a/pypy/jit/metainterp/test/test_memmgr.py +++ b/pypy/jit/metainterp/test/test_memmgr.py @@ -18,6 +18,7 @@ class FakeLoopToken: generation = 0 + invalidated = False class _TestMemoryManager: _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit