[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