Mercurial > hg > graal-compiler
diff src/share/vm/gc_implementation/g1/vm_operations_g1.cpp @ 20646:4e4ebe50c8e3
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
author | kbarrett |
---|---|
date | Tue, 11 Nov 2014 13:39:00 -0500 |
parents | d3fd73295885 |
children |
line wrap: on
line diff
--- a/src/share/vm/gc_implementation/g1/vm_operations_g1.cpp Mon Nov 17 16:36:09 2014 +0000 +++ b/src/share/vm/gc_implementation/g1/vm_operations_g1.cpp Tue Nov 11 13:39:00 2014 -0500 @@ -213,8 +213,12 @@ 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); + 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() {