[pypy-commit] pypy gc-incminimark-pinning: tweak odds for unpinning and removing from stack. additionally randomize how many gc steps are done

groggi noreply at buildbot.pypy.org
Sat Aug 23 19:36:58 CEST 2014


Author: Gregor Wegberg <code at gregorwegberg.com>
Branch: gc-incminimark-pinning
Changeset: r73011:c4573c1c9d31
Date: 2014-08-23 19:36 +0200
http://bitbucket.org/pypy/pypy/changeset/c4573c1c9d31/

Log:	tweak odds for unpinning and removing from stack. additionally
	randomize how many gc steps are done

diff --git a/rpython/memory/gc/test/test_object_pinning.py b/rpython/memory/gc/test/test_object_pinning.py
--- a/rpython/memory/gc/test/test_object_pinning.py
+++ b/rpython/memory/gc/test/test_object_pinning.py
@@ -69,14 +69,14 @@
             if random.random() < 0.5:
                 self.gc.pin(llmemory.cast_ptr_to_adr(obj))
                 print("+pin")
-            self.gc.debug_gc_step()
+            self.gc.debug_gc_step(random.randint(1, 4))
             for o in self.stackroots[:]:
                 assert o.someInt == 100
                 o_adr = llmemory.cast_ptr_to_adr(o)
-                if random.random() < 0.5 and self.gc._is_pinned(o_adr):
+                if random.random() < 0.1 and self.gc._is_pinned(o_adr):
                     print("-pin")
                     self.gc.unpin(o_adr)
-                if random.random() < 0.5:
+                if random.random() < 0.1:
                     print("-stack")
                     self.stackroots.remove(o)
 


More information about the pypy-commit mailing list