[pypy-commit] pypy stm-gc: Mark a point that is not done.

arigo noreply at buildbot.pypy.org
Mon Apr 23 21:20:46 CEST 2012


Author: Armin Rigo <arigo at tunes.org>
Branch: stm-gc
Changeset: r54696:bfaf482a7edb
Date: 2012-04-23 21:17 +0200
http://bitbucket.org/pypy/pypy/changeset/bfaf482a7edb/

Log:	Mark a point that is not done.

diff --git a/pypy/rpython/memory/gc/stmgc.py b/pypy/rpython/memory/gc/stmgc.py
--- a/pypy/rpython/memory/gc/stmgc.py
+++ b/pypy/rpython/memory/gc/stmgc.py
@@ -71,7 +71,7 @@
 #   - In non-transactional mode, the write barrier turns the object LOCAL
 #     and add it in the list 'main_thread_tls.mt_global_turned_local'.
 #     This list contains all previously-GLOBAL objects that have been
-#     modified.  Objects turned LOCAL are changed back to GLOBAL and
+#     modified.  [XXX:TODO]Objects turned LOCAL are changed back to GLOBAL and
 #     removed from 'mt_global_turned_local' by the next collection,
 #     unless they are also found in the stack (the reason being that if
 #     they are in the stack and stm_writebarrier() has already been
diff --git a/pypy/rpython/memory/gc/stmtls.py b/pypy/rpython/memory/gc/stmtls.py
--- a/pypy/rpython/memory/gc/stmtls.py
+++ b/pypy/rpython/memory/gc/stmtls.py
@@ -133,6 +133,8 @@
         # and will not be called again before writing.  But such objects
         # are right now directly in the stack.  So to fix this issue, we
         # conservatively mark as local all objects directly from the stack.
+        # XXX TODO: do the same thing after each local_collection() by
+        # the main thread.
         self.mt_global_turned_local = NULL
         self.gc.root_walker.walk_current_stack_roots(
             StmGCTLS._remark_object_as_local, self)


More information about the pypy-commit mailing list