Author: Armin Rigo <[email protected]>
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)
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit