--- old/src/hotspot/share/gc/g1/g1CollectorState.hpp 2020-02-17 17:22:56.425251817 +0800 +++ new/src/hotspot/share/gc/g1/g1CollectorState.hpp 2020-02-17 17:22:56.428251925 +0800 @@ -71,6 +71,9 @@ // Set during a full gc pause. bool _in_full_gc; + // Indicate finish of mixed gc(s) + bool _finish_of_mixed_gc; + public: G1CollectorState() : _in_young_only_phase(true), @@ -81,7 +84,8 @@ _mark_or_rebuild_in_progress(false), _clearing_next_bitmap(false), - _in_full_gc(false) { } + _in_full_gc(false), + _finish_of_mixed_gc(false) { } // Phase setters void set_in_young_only_phase(bool v) { _in_young_only_phase = v; } @@ -90,6 +94,7 @@ void set_in_young_gc_before_mixed(bool v) { _in_young_gc_before_mixed = v; } void set_in_initial_mark_gc(bool v) { _in_initial_mark_gc = v; } void set_in_full_gc(bool v) { _in_full_gc = v; } + void set_finish_of_mixed_gc(bool v) { _finish_of_mixed_gc = v; } void set_initiate_conc_mark_if_possible(bool v) { _initiate_conc_mark_if_possible = v; } @@ -109,6 +114,7 @@ bool mark_or_rebuild_in_progress() const { return _mark_or_rebuild_in_progress; } bool clearing_next_bitmap() const { return _clearing_next_bitmap; } + bool finish_of_mixed_gc() const { return _finish_of_mixed_gc; } G1YCType yc_type() const { if (in_initial_mark_gc()) {