CRR: G1: assert((_g1->evacuation_failed()) || (!_g1->obj_in_cs(obj))) failed (XS)
John.Coomes at oracle.com
Wed May 4 19:52:27 UTC 2011
Tony Printezis (tony.printezis at oracle.com) wrote:
> Hi all,
> I'd like one more review for this small fix:
> The problem was that the assert at the end of mark_forwardee() was too
> strong and if another thread self-forwarded the object we might have hit
> the assert before the other thread got a chance to set the evacuation
> failure flag. I removed the assert (as it's not straightforward to make
> it work in the presence of this race) and I added two new asserts in the
> evacuation handling code to make sure that the post-conditions are as
> expected before we get to mark_forwardee().
Looks good to me.
More information about the hotspot-gc-dev