hotspot/src/share/vm/gc_implementation/shared/vmGCOperations.cpp
changeset 30147 af9a41999c6e
parent 29697 92501504191b
child 30171 a7606ea92e05
equal deleted inserted replaced
29809:c59a5f161524 30147:af9a41999c6e
   114     Heap_lock->unlock();
   114     Heap_lock->unlock();
   115     release_and_notify_pending_list_lock();
   115     release_and_notify_pending_list_lock();
   116     _prologue_succeeded = false;
   116     _prologue_succeeded = false;
   117   } else {
   117   } else {
   118     _prologue_succeeded = true;
   118     _prologue_succeeded = true;
   119     SharedHeap* sh = SharedHeap::heap();
       
   120     if (sh != NULL) sh->_thread_holds_heap_lock_for_gc = true;
       
   121   }
   119   }
   122   return _prologue_succeeded;
   120   return _prologue_succeeded;
   123 }
   121 }
   124 
   122 
   125 
   123 
   126 void VM_GC_Operation::doit_epilogue() {
   124 void VM_GC_Operation::doit_epilogue() {
   127   assert(Thread::current()->is_Java_thread(), "just checking");
   125   assert(Thread::current()->is_Java_thread(), "just checking");
   128   // Release the Heap_lock first.
   126   // Release the Heap_lock first.
   129   SharedHeap* sh = SharedHeap::heap();
       
   130   if (sh != NULL) sh->_thread_holds_heap_lock_for_gc = false;
       
   131   Heap_lock->unlock();
   127   Heap_lock->unlock();
   132   release_and_notify_pending_list_lock();
   128   release_and_notify_pending_list_lock();
   133 }
   129 }
   134 
   130 
   135 bool VM_GC_HeapInspection::doit_prologue() {
   131 bool VM_GC_HeapInspection::doit_prologue() {