equal
deleted
inserted
replaced
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() { |