< prev index next >

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

Print this page
rev 7316 : 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:
rev 7317 : 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,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. ! ConcurrentMarkThread::slt()-> ! manipulatePLL(SurrogateLockerThread::acquirePLL); } void VM_CGC_Operation::release_and_notify_pending_list_lock() { assert(_needs_pll, "don't call this otherwise"); // The caller may block while communicating --- 211,226 ---- 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(); ! } } void VM_CGC_Operation::release_and_notify_pending_list_lock() { assert(_needs_pll, "don't call this otherwise"); // The caller may block while communicating
< prev index next >