Author: Remi Meier <[email protected]>
Branch:
Changeset: r1594:ecc40e41135b
Date: 2015-01-28 16:55 +0100
http://bitbucket.org/pypy/stmgc/changeset/ecc40e41135b/
Log: add explanation
diff --git a/c8/stm/gcpage.c b/c8/stm/gcpage.c
--- a/c8/stm/gcpage.c
+++ b/c8/stm/gcpage.c
@@ -345,7 +345,11 @@
assert(!is_new_object(item)); /* should never be in that list */
if (!mark_visited_test_and_set(item)) {
- /* trace shared, committed version */
+ /* trace shared, committed version: only do this if we
didn't
+ trace it already. This is safe because we don't trace any
+ objs before mark_visit_from_modified_objects AND if we
+ do mark_and_trace on an obj that is modified in >1
segment,
+ the tracing always happens in seg0 (see mark_and_trace).
*/
mark_and_trace(item, stm_object_pages);
}
mark_and_trace(item, base); /* private, modified version */
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit