Print this page
G1: Use SoftMaxHeapSize to guide GC heuristics

@@ -69,29 +69,34 @@
   bool _clearing_next_bitmap;
 
   // 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),
     _in_young_gc_before_mixed(false),
 
     _in_initial_mark_gc(false),
     _initiate_conc_mark_if_possible(false),
 
     _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; }
 
   // Pause setters
   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; }
 
   void set_mark_or_rebuild_in_progress(bool v) { _mark_or_rebuild_in_progress = v; }
   void set_clearing_next_bitmap(bool v) { _clearing_next_bitmap = v; }

@@ -107,10 +112,11 @@
 
   bool initiate_conc_mark_if_possible() const { return _initiate_conc_mark_if_possible; }
 
   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()) {
       return InitialMark;
     } else if (mark_or_rebuild_in_progress()) {