Commits

Armin Rigo committed 8e81e80

import stmgc/822e52f17647 (branch "marker")

  • Participants
  • Parent commits aa05911
  • Branches stmgc-c7

Comments (0)

Files changed (3)

File rpython/translator/stm/src_stm/revision

-937201ff1335
+822e52f17647

File rpython/translator/stm/src_stm/stm/marker.c

     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;
     }
 

File rpython/translator/stm/src_stm/stm/nursery.c

     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)