hotspot/src/share/vm/gc_implementation/g1/vm_operations_g1.hpp
changeset 6058 9c9aec6ab47d
parent 5547 f4b087cbb361
child 7397 5b173b4ca846
equal deleted inserted replaced
6057:e660446e0804 6058:9c9aec6ab47d
    29 //   - VM_G1CollectForAllocation
    29 //   - VM_G1CollectForAllocation
    30 //   - VM_G1IncCollectionPause
    30 //   - VM_G1IncCollectionPause
    31 //   - VM_G1PopRegionCollectionPause
    31 //   - VM_G1PopRegionCollectionPause
    32 
    32 
    33 class VM_G1CollectFull: public VM_GC_Operation {
    33 class VM_G1CollectFull: public VM_GC_Operation {
    34  private:
       
    35  public:
    34  public:
    36   VM_G1CollectFull(int gc_count_before,
    35   VM_G1CollectFull(unsigned int gc_count_before,
    37                    GCCause::Cause gc_cause)
    36                    unsigned int full_gc_count_before,
    38     : VM_GC_Operation(gc_count_before)
    37                    GCCause::Cause cause)
    39   {
    38     : VM_GC_Operation(gc_count_before, full_gc_count_before) {
    40     _gc_cause = gc_cause;
    39     _gc_cause = cause;
    41   }
    40   }
    42   ~VM_G1CollectFull() {}
    41   ~VM_G1CollectFull() {}
    43   virtual VMOp_Type type() const { return VMOp_G1CollectFull; }
    42   virtual VMOp_Type type() const { return VMOp_G1CollectFull; }
    44   virtual void doit();
    43   virtual void doit();
    45   virtual const char* name() const {
    44   virtual const char* name() const {
    65   }
    64   }
    66   HeapWord* result() { return _res; }
    65   HeapWord* result() { return _res; }
    67 };
    66 };
    68 
    67 
    69 class VM_G1IncCollectionPause: public VM_GC_Operation {
    68 class VM_G1IncCollectionPause: public VM_GC_Operation {
    70  public:
    69 private:
    71   VM_G1IncCollectionPause(int gc_count_before,
    70   bool _should_initiate_conc_mark;
    72                           GCCause::Cause gc_cause = GCCause::_g1_inc_collection_pause) :
    71   double _target_pause_time_ms;
    73     VM_GC_Operation(gc_count_before) { _gc_cause = gc_cause; }
    72   unsigned int _full_collections_completed_before;
       
    73 public:
       
    74   VM_G1IncCollectionPause(unsigned int   gc_count_before,
       
    75                           bool           should_initiate_conc_mark,
       
    76                           double         target_pause_time_ms,
       
    77                           GCCause::Cause cause)
       
    78     : VM_GC_Operation(gc_count_before),
       
    79       _full_collections_completed_before(0),
       
    80       _should_initiate_conc_mark(should_initiate_conc_mark),
       
    81       _target_pause_time_ms(target_pause_time_ms) {
       
    82     guarantee(target_pause_time_ms > 0.0,
       
    83               err_msg("target_pause_time_ms = %1.6lf should be positive",
       
    84                       target_pause_time_ms));
       
    85 
       
    86     _gc_cause = cause;
       
    87   }
    74   virtual VMOp_Type type() const { return VMOp_G1IncCollectionPause; }
    88   virtual VMOp_Type type() const { return VMOp_G1IncCollectionPause; }
    75   virtual void doit();
    89   virtual void doit();
       
    90   virtual void doit_epilogue();
    76   virtual const char* name() const {
    91   virtual const char* name() const {
    77     return "garbage-first incremental collection pause";
    92     return "garbage-first incremental collection pause";
    78   }
    93   }
    79 };
    94 };
    80 
    95