8055239: assert(_thread == Thread::current()->osthread()) failed: The PromotionFailedInfo should be thread local

Changed to trace and reset before second use of PromotionFailedInfo.

Reviewed-by: jmasa, brutisso, kbarrett
This commit is contained in:
Sangheon Kim 2014-11-26 21:38:25 -08:00
parent d4c7f00306
commit 1ffc316e18

@ -999,6 +999,11 @@ void ParNewGeneration::collect(bool full,
thread_state_set.reset(0 /* Bad value in debug if not reset */,
promotion_failed());
// Trace and reset failed promotion info.
if (promotion_failed()) {
thread_state_set.trace_promotion_failed(gc_tracer);
}
// Process (weak) reference objects found during scavenge.
ReferenceProcessor* rp = ref_processor();
IsAliveClosure is_alive(this);