[pypy-commit] pypy gc-incminimark-pinning: fix for `test_pin_malloc_pin` testcase.
groggi
noreply at buildbot.pypy.org
Mon Jun 2 17:24:04 CEST 2014
Author: Gregor Wegberg <code at gregorwegberg.com>
Branch: gc-incminimark-pinning
Changeset: r71824:d0a8ba4741c0
Date: 2014-05-14 16:52 +0200
http://bitbucket.org/pypy/pypy/changeset/d0a8ba4741c0/
Log: fix for `test_pin_malloc_pin` testcase.
This seems to fix also the problem running the RFile example with
10'000 iterations and reading 512 Bytes each time. The fix feels
correct but I must investigate more to be sure, added a # XXX
therefore.
diff --git a/rpython/memory/gc/incminimark.py b/rpython/memory/gc/incminimark.py
--- a/rpython/memory/gc/incminimark.py
+++ b/rpython/memory/gc/incminimark.py
@@ -723,8 +723,9 @@
# move search area to the next free memory block in the
# nursery.
self.nursery_free = self.nursery_top + pinned_obj_size
- self.move_nursery_top(llarena.getfakearenaaddress(
- self.nursery_barriers.popleft()) - self.nursery_free)
+ # XXX should be, but check if the new area
+ # (nursery_free to nursery_top) was reset (arena_reset()). (groggi)
+ self.nursery_top = self.nursery_barriers.popleft()
else:
count += 1
#
@@ -766,7 +767,6 @@
ll_assert(count == 2,
"Seeing minor_collection() at least twice. "
"Too many pinned objects?")
-
#
# attempt to get 'totalzise' out of the nursery now. This may
# fail again, and then we loop. Should be the uncommon case.
More information about the pypy-commit
mailing list