[pypy-commit] stmgc hashtable-iter: hg merge default
arigo
noreply at buildbot.pypy.org
Mon Feb 2 15:49:09 CET 2015
Author: Armin Rigo <arigo at tunes.org>
Branch: hashtable-iter
Changeset: r1605:88492dc56aa8
Date: 2015-02-02 15:49 +0100
http://bitbucket.org/pypy/stmgc/changeset/88492dc56aa8/
Log: hg merge default
diff --git a/c7/stm/finalizer.c b/c7/stm/finalizer.c
--- a/c7/stm/finalizer.c
+++ b/c7/stm/finalizer.c
@@ -138,6 +138,8 @@
init_finalizers(f);
STM_PSEGMENT->finalizers = f;
}
+ assert(STM_PSEGMENT->finalizers->count_non_young
+ <= list_count(STM_PSEGMENT->finalizers->objects_with_finalizers));
LIST_APPEND(STM_PSEGMENT->finalizers->objects_with_finalizers, obj);
return obj;
}
@@ -289,6 +291,8 @@
struct list_s *lst = f->objects_with_finalizers;
long i, count = list_count(lst);
lst->count = 0;
+ f->count_non_young = 0;
+
for (i = 0; i < count; i++) {
object_t *x = (object_t *)list_item(lst, i);
diff --git a/c7/test/test_finalizer.py b/c7/test/test_finalizer.py
--- a/c7/test/test_finalizer.py
+++ b/c7/test/test_finalizer.py
@@ -176,12 +176,14 @@
def test_finalizer_in_major_collection(self):
self.start_transaction()
- lp1 = stm_allocate_with_finalizer(48)
- lp2 = stm_allocate_with_finalizer(48)
- lp3 = stm_allocate_with_finalizer(48)
- print lp1, lp2, lp3
- stm_major_collect()
- self.expect_finalized([lp1, lp2, lp3])
+ for repeat in range(2):
+ lp1 = stm_allocate_with_finalizer(48)
+ lp2 = stm_allocate_with_finalizer(48)
+ lp3 = stm_allocate_with_finalizer(48)
+ print repeat, lp1, lp2, lp3
+ self.expect_finalized([])
+ stm_major_collect()
+ self.expect_finalized([lp1, lp2, lp3])
def test_finalizer_from_other_thread(self):
self.start_transaction()
More information about the pypy-commit
mailing list