Mercurial > hg > graal-compiler
diff src/share/vm/gc_implementation/g1/g1MarkSweep.cpp @ 358:8651a65ac4b4
6735416: G1: runThese javasoft.sqe.tests.lang.thrd011.thrd01101.thrd01101 fails
6622418: G1: assert(false,"Non-balanced monitor enter/exit!") fails
Summary: The mark-sweep compact (which we use for full gc) wrapper did not save the mark words for biased locked objects. The fix is to trivially call the appropriate methods.
Reviewed-by: tonyp, ysr
author | iveresov |
---|---|
date | Fri, 22 Aug 2008 11:48:25 -0700 |
parents | 37f87013dfd8 |
children | c96030fff130 |
line wrap: on
line diff
--- a/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp Thu Aug 21 23:38:19 2008 -0400 +++ b/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp Fri Aug 22 11:48:25 2008 -0700 @@ -50,6 +50,10 @@ allocate_stacks(); + // We should save the marks of the currently locked biased monitors. + // The marking doesn't preserve the marks of biased objects. + BiasedLocking::preserve_marks(); + mark_sweep_phase1(marked_for_unloading, clear_all_softrefs); if (G1VerifyConcMark) { @@ -67,7 +71,7 @@ mark_sweep_phase4(); GenMarkSweep::restore_marks(); - + BiasedLocking::restore_marks(); GenMarkSweep::deallocate_stacks(); // We must invalidate the perm-gen rs, so that it gets rebuilt.