[pypy-commit] pypy stmgc-c8: import stmgc

Raemi noreply at buildbot.pypy.org
Mon Nov 23 05:22:36 EST 2015


Author: Remi Meier <remi.meier at gmail.com>
Branch: stmgc-c8
Changeset: r80853:f41aa8585729
Date: 2015-11-23 11:24 +0100
http://bitbucket.org/pypy/pypy/changeset/f41aa8585729/

Log:	import stmgc

diff --git a/rpython/translator/stm/src_stm/revision b/rpython/translator/stm/src_stm/revision
--- a/rpython/translator/stm/src_stm/revision
+++ b/rpython/translator/stm/src_stm/revision
@@ -1,1 +1,1 @@
-72facb6e4533
+e3071642fd5c
diff --git a/rpython/translator/stm/src_stm/stm/core.c b/rpython/translator/stm/src_stm/stm/core.c
--- a/rpython/translator/stm/src_stm/stm/core.c
+++ b/rpython/translator/stm/src_stm/stm/core.c
@@ -1561,6 +1561,14 @@
 
     list_clear(pseg->objects_pointing_to_nursery);
     list_clear(pseg->old_objects_with_cards_set);
+    LIST_FOREACH_R(pseg->large_overflow_objects, uintptr_t /*item*/,
+        {
+            if (is_small_uniform((object_t*)item)) {
+                //_stm_small_free()
+            } else {
+                _stm_large_free(stm_object_pages + item);
+            }
+        });
     list_clear(pseg->large_overflow_objects);
     list_clear(pseg->young_weakrefs);
 #pragma pop_macro("STM_SEGMENT")
diff --git a/rpython/translator/stm/src_stm/stm/detach.c b/rpython/translator/stm/src_stm/stm/detach.c
--- a/rpython/translator/stm/src_stm/stm/detach.c
+++ b/rpython/translator/stm/src_stm/stm/detach.c
@@ -127,6 +127,7 @@
         // XXX: not sure if the next line is a good idea
         tl->last_associated_segment_num = remote_seg_num;
         ensure_gs_register(remote_seg_num);
+        assert(old_tl == STM_SEGMENT->running_thread);
         timing_event(STM_SEGMENT->running_thread, STM_TRANSACTION_REATTACH);
         commit_external_inevitable_transaction();
     }
@@ -186,6 +187,7 @@
     assert(segnum > 0);
 
     ensure_gs_register(segnum);
+    assert(((stm_thread_local_t *)old) == STM_SEGMENT->running_thread);
     timing_event(STM_SEGMENT->running_thread, STM_TRANSACTION_REATTACH);
     commit_external_inevitable_transaction();
     ensure_gs_register(mysegnum);


More information about the pypy-commit mailing list