< prev index next >
src/share/vm/gc_implementation/g1/vm_operations_g1.cpp
Print this page
rev 7780 : imported patch 8072621
rev 7781 : imported patch 8066771
rev 7782 : [mq]: review
*** 36,46 ****
VM_G1CollectForAllocation::VM_G1CollectForAllocation(uint gc_count_before,
size_t word_size)
: VM_G1OperationWithAllocRequest(gc_count_before, word_size,
GCCause::_allocation_failure) {
! guarantee(word_size > 0, "an allocation should always be requested");
}
void VM_G1CollectForAllocation::doit() {
G1CollectedHeap* g1h = G1CollectedHeap::heap();
GCCauseSetter x(g1h, _gc_cause);
--- 36,46 ----
VM_G1CollectForAllocation::VM_G1CollectForAllocation(uint gc_count_before,
size_t word_size)
: VM_G1OperationWithAllocRequest(gc_count_before, word_size,
GCCause::_allocation_failure) {
! guarantee(word_size != 0, "An allocation should always be requested with this operation.");
}
void VM_G1CollectForAllocation::doit() {
G1CollectedHeap* g1h = G1CollectedHeap::heap();
GCCauseSetter x(g1h, _gc_cause);
*** 71,81 ****
target_pause_time_ms));
_gc_cause = gc_cause;
}
bool VM_G1IncCollectionPause::doit_prologue() {
! bool res = VM_GC_Operation::doit_prologue();
if (!res) {
if (_should_initiate_conc_mark) {
// The prologue can fail for a couple of reasons. The first is that another GC
// got scheduled and prevented the scheduling of the initial mark GC. The
// second is that the GC locker may be active and the heap can't be expanded.
--- 71,81 ----
target_pause_time_ms));
_gc_cause = gc_cause;
}
bool VM_G1IncCollectionPause::doit_prologue() {
! bool res = VM_G1OperationWithAllocRequest::doit_prologue();
if (!res) {
if (_should_initiate_conc_mark) {
// The prologue can fail for a couple of reasons. The first is that another GC
// got scheduled and prevented the scheduling of the initial mark GC. The
// second is that the GC locker may be active and the heap can't be expanded.
*** 161,171 ****
}
}
}
void VM_G1IncCollectionPause::doit_epilogue() {
! VM_GC_Operation::doit_epilogue();
// If the pause was initiated by a System.gc() and
// +ExplicitGCInvokesConcurrent, we have to wait here for the cycle
// that just started (or maybe one that was already in progress) to
// finish.
--- 161,171 ----
}
}
}
void VM_G1IncCollectionPause::doit_epilogue() {
! VM_G1OperationWithAllocRequest::doit_epilogue();
// If the pause was initiated by a System.gc() and
// +ExplicitGCInvokesConcurrent, we have to wait here for the cycle
// that just started (or maybe one that was already in progress) to
// finish.
< prev index next >