Author: Armin Rigo <[email protected]>
Branch: 
Changeset: r1592:24b92a4c84be
Date: 2015-01-28 11:57 +0100
http://bitbucket.org/pypy/stmgc/changeset/24b92a4c84be/

Log:    Revert this change from 24ba707614c4. I think it is dangerous.

diff --git a/c7/stm/gcpage.c b/c7/stm/gcpage.c
--- a/c7/stm/gcpage.c
+++ b/c7/stm/gcpage.c
@@ -436,8 +436,14 @@
             get_priv_segment(i)->modified_old_objects,
             object_t * /*item*/,
             ({
-                if (!mark_visited_test_and_set(item))
-                    mark_trace(item, stm_object_pages);  /* shared version */
+                /* (arigo) I think that here we need to mark_trace() both
+                   the shared version and the private version in all cases.
+                   Even if the visited flag is already set, we don't know
+                   which version was already traced...  Chances are that
+                   it was the stm_object_pages version, but we are not sure.
+                */
+                mark_visited_test_and_set(item);
+                mark_trace(item, stm_object_pages);  /* shared version */
                 mark_trace(item, base);              /* private version */
             }));
     }
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to