Author: Remi Meier <[email protected]>
Branch: c8-private-pages
Changeset: r1562:63fb7d3bb1db
Date: 2015-01-21 14:01 +0100
http://bitbucket.org/pypy/stmgc/changeset/63fb7d3bb1db/
Log: fix for validation failing in the thread doing the major collection
(it didn't abort)
diff --git a/c8/stm/gcpage.c b/c8/stm/gcpage.c
--- a/c8/stm/gcpage.c
+++ b/c8/stm/gcpage.c
@@ -574,4 +574,11 @@
DEBUG_EXPECT_SEGFAULT(true);
release_all_privatization_locks();
+
+ /* if major_do_validation_and_minor_collections() decided that we
+ must abort, do it now. The others are in safe-points that will
+ abort if they need to. */
+ dprintf(("must abort?:%d\n", (int)must_abort()));
+ if (must_abort())
+ abort_with_mutex();
}
diff --git a/c8/stm/rewind_setjmp.h b/c8/stm/rewind_setjmp.h
--- a/c8/stm/rewind_setjmp.h
+++ b/c8/stm/rewind_setjmp.h
@@ -87,6 +87,7 @@
} while (0)
/* go up one frame. if there was a setjmp call in this frame,
+ copy the frame above the current one and add it to the list
*/
#define rewind_jmp_leaveframe(rjthread, rjbuf, ss) do { \
assert((rjbuf)->shadowstack_base == (char *)(ss)); \
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit