Tue, 07 Dec 2010 16:44:34 -0800 Merge
johnc [Tue, 07 Dec 2010 16:44:34 -0800] rev 7418
Merge
Tue, 07 Dec 2010 16:18:45 -0800 6994628: G1: Test gc/gctests/FinalizeTest05 fails (one live object is finalized)
johnc [Tue, 07 Dec 2010 16:18:45 -0800] rev 7417
6994628: G1: Test gc/gctests/FinalizeTest05 fails (one live object is finalized) Summary: The Solaris Studio 12 update 1 C++ compiler was incorrectly re-ordering the reads of an object's mark word in oopDesc::forward_to_atomic(). This opened a small window where one thread could execute the successful CAS path even though another thread had already successfully forwarded the object. This could result in an object being copied twice. The code in oopDesc::forward_to_atomic() was changed to read the mark word once. Reviewed-by: ysr, tonyp
(0) -3000 -1000 -300 -100 -30 -10 -2 +2 +10 +30 +100 +300 +1000 +3000 +10000 +30000 tip