< prev index next >
src/share/vm/gc/shenandoah/shenandoahCollectorPolicy.cpp
Print this page
rev 13125 : imported patch update-refs.patch
*** 101,110 ****
--- 101,114 ----
virtual void print_thresholds() {
}
virtual bool should_start_concurrent_mark(size_t used, size_t capacity) const=0;
+ virtual bool update_refs_early() {
+ return ShenandoahUpdateRefsEarly;
+ }
+
virtual bool should_start_partial_gc() {
return false;
}
virtual bool handover_cancelled_marking() {
*** 784,793 ****
--- 788,801 ----
_phase_names[partial_gc] = "Partial GC";
_phase_names[conc_mark] = "Concurrent Marking";
_phase_names[conc_evac] = "Concurrent Evacuation";
+ _phase_names[conc_update_refs] = "Concurrent Update References";
+ _phase_names[pre_update_refs] = "Pause Pre Update References";
+ _phase_names[post_update_refs] = "Pause Post Update References";
+
if (ShenandoahGCHeuristics != NULL) {
if (strcmp(ShenandoahGCHeuristics, "aggressive") == 0) {
log_info(gc, init)("Shenandoah heuristics: aggressive");
_heuristics = new AggressiveHeuristics();
} else if (strcmp(ShenandoahGCHeuristics, "dynamic") == 0) {
*** 883,892 ****
--- 891,904 ----
bool ShenandoahCollectorPolicy::handover_cancelled_marking() {
return _heuristics->handover_cancelled_marking();
}
+ bool ShenandoahCollectorPolicy::update_refs_early() {
+ return _heuristics->update_refs_early();
+ }
+
void ShenandoahCollectorPolicy::record_cm_success() {
_heuristics->record_cm_success();
_successful_cm++;
}
< prev index next >