[pypy-commit] pypy default: In the memmgr, free loops that have been marked as 'invalidated' too.

arigo noreply at buildbot.pypy.org
Mon Oct 17 15:41:32 CEST 2011


Author: Armin Rigo <arigo at 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:


More information about the pypy-commit mailing list