< prev index next >

hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/vmCMSOperations.cpp

Print this page
rev 6902 : 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, tschatzl

*** 48,59 **** // Methods in abstract class VM_CMS_Operation ////////////////////////////////////////////////////////// void VM_CMS_Operation::acquire_pending_list_lock() { // The caller may block while communicating // with the SLT thread in order to acquire/release the PLL. ! ConcurrentMarkSweepThread::slt()-> ! manipulatePLL(SurrogateLockerThread::acquirePLL); } void VM_CMS_Operation::release_and_notify_pending_list_lock() { // The caller may block while communicating // with the SLT thread in order to acquire/release the PLL. --- 48,63 ---- // Methods in abstract class VM_CMS_Operation ////////////////////////////////////////////////////////// void VM_CMS_Operation::acquire_pending_list_lock() { // The caller may block while communicating // with the SLT thread in order to acquire/release the PLL. ! SurrogateLockerThread* slt = ConcurrentMarkSweepThread::slt(); ! if (slt != NULL) { ! slt->manipulatePLL(SurrogateLockerThread::acquirePLL); ! } else { ! SurrogateLockerThread::report_missing_slt(); ! } } void VM_CMS_Operation::release_and_notify_pending_list_lock() { // The caller may block while communicating // with the SLT thread in order to acquire/release the PLL.
< prev index next >