Author: Remi Meier <remi.me...@inf.ethz.ch> 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 pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit