[pypy-commit] pypy stmgc-c7: import stmgc/822e52f17647 (branch "marker")

arigo noreply at buildbot.pypy.org
Sun May 4 16:52:00 CEST 2014


Author: Armin Rigo <arigo at tunes.org>
Branch: stmgc-c7
Changeset: r71258:8e81e8026bd6
Date: 2014-05-04 16:51 +0200
http://bitbucket.org/pypy/pypy/changeset/8e81e8026bd6/

Log:	import stmgc/822e52f17647 (branch "marker")

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 @@
-937201ff1335
+822e52f17647
diff --git a/rpython/translator/stm/src_stm/stm/marker.c b/rpython/translator/stm/src_stm/stm/marker.c
--- a/rpython/translator/stm/src_stm/stm/marker.c
+++ b/rpython/translator/stm/src_stm/stm/marker.c
@@ -171,19 +171,19 @@
     switch (kind) {
     case WRITE_WRITE_CONTENTION:
         marker_fetch_obj_write(other_segment_num, obj, other_marker);
-	marker_expand(other_marker, other_segment_base, outmarker);
+        marker_expand(other_marker, other_segment_base, outmarker);
         break;
     case INEVITABLE_CONTENTION:
         assert(abort_other == false);
         other_marker[0] = other_pseg->marker_inev[0];
         other_marker[1] = other_pseg->marker_inev[1];
-	marker_expand(other_marker, other_segment_base, outmarker);
+        marker_expand(other_marker, other_segment_base, outmarker);
         break;
     case WRITE_READ_CONTENTION:
-	strcpy(outmarker, "<read at unknown location>");
-	break;
+        strcpy(outmarker, "<read at unknown location>");
+        break;
     default:
-	outmarker[0] = 0;
+        outmarker[0] = 0;
         break;
     }
 
diff --git a/rpython/translator/stm/src_stm/stm/nursery.c b/rpython/translator/stm/src_stm/stm/nursery.c
--- a/rpython/translator/stm/src_stm/stm/nursery.c
+++ b/rpython/translator/stm/src_stm/stm/nursery.c
@@ -245,6 +245,12 @@
     for (i = num_old + 1; i < total; i += 2) {
         minor_trace_if_young((object_t **)list_ptr_to_item(mlst, i));
     }
+    if (STM_PSEGMENT->transaction_state == TS_INEVITABLE) {
+        uintptr_t *pmarker_inev_obj = (uintptr_t *)
+            REAL_ADDRESS(STM_SEGMENT->segment_base,
+                         &STM_PSEGMENT->marker_inev[1]);
+        minor_trace_if_young((object_t **)pmarker_inev_obj);
+    }
 }
 
 static size_t throw_away_nursery(struct stm_priv_segment_info_s *pseg)


More information about the pypy-commit mailing list