< prev index next >

src/share/vm/gc_implementation/g1/vm_operations_g1.cpp

Print this page
rev 7267 : 8062036: ConcurrentMarkThread::slt may be invoked before ConcurrentMarkThread::makeSurrogateLockerThread causing intermittent crashes
Summary: Suppress gc_alot during VM init, improve error for SLT uninitialized.
Reviewed-by: jmasa, brutisso

*** 211,221 **** void VM_CGC_Operation::acquire_pending_list_lock() { assert(_needs_pll, "don't call this otherwise"); // The caller may block while communicating // with the SLT thread in order to acquire/release the PLL. ! if (SurrogateLockerThread* slt = ConcurrentMarkThread::slt()) { slt->manipulatePLL(SurrogateLockerThread::acquirePLL); } else { SurrogateLockerThread::report_missing_slt(); } } --- 211,222 ---- void VM_CGC_Operation::acquire_pending_list_lock() { assert(_needs_pll, "don't call this otherwise"); // The caller may block while communicating // with the SLT thread in order to acquire/release the PLL. ! SurrogateLockerThread* slt = ConcurrentMarkThread::slt(); ! if (slt != NULL) { slt->manipulatePLL(SurrogateLockerThread::acquirePLL); } else { SurrogateLockerThread::report_missing_slt(); } }
< prev index next >