< prev index next >
src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
Print this page
@@ -2126,10 +2126,11 @@
}
}
}
#ifndef PRODUCT
+
class CheckGCTimeStampsHRClosure : public HeapRegionClosure {
private:
unsigned _gc_time_stamp;
bool _failures;
@@ -2154,10 +2155,18 @@
void G1CollectedHeap::check_gc_time_stamps() {
CheckGCTimeStampsHRClosure cl(_gc_time_stamp);
heap_region_iterate(&cl);
guarantee(!cl.failures(), "all GC time stamps should have been reset");
}
+
+bool G1CollectedHeap::heap_lock_held_for_gc() {
+ Thread* t = Thread::current();
+ return Heap_lock->owned_by_self()
+ || ( (t->is_GC_task_thread() || t->is_VM_thread())
+ && _thread_holds_heap_lock_for_gc);
+}
+
#endif // PRODUCT
void G1CollectedHeap::iterate_dirty_card_closure(CardTableEntryClosure* cl,
DirtyCardQueue* into_cset_dcq,
bool concurrent,
@@ -3334,12 +3343,10 @@
heap_region_iterate(&cl);
}
#endif // PRODUCT
G1CollectedHeap* G1CollectedHeap::heap() {
- assert(_sh->kind() == CollectedHeap::G1CollectedHeap,
- "not a garbage-first heap");
return _g1h;
}
void G1CollectedHeap::gc_prologue(bool full /* Ignored */) {
// always_do_update_barrier = false;
< prev index next >