src/share/vm/gc_implementation/g1/vm_operations_g1.hpp

changeset 2011
4e5661ba9d98
parent 1907
c18cbe5936b8
child 2314
f95d63e2154a
     1.1 --- a/src/share/vm/gc_implementation/g1/vm_operations_g1.hpp	Mon Jun 28 14:13:18 2010 -0400
     1.2 +++ b/src/share/vm/gc_implementation/g1/vm_operations_g1.hpp	Mon Jun 28 14:13:17 2010 -0400
     1.3 @@ -31,13 +31,12 @@
     1.4  //   - VM_G1PopRegionCollectionPause
     1.5  
     1.6  class VM_G1CollectFull: public VM_GC_Operation {
     1.7 - private:
     1.8   public:
     1.9 -  VM_G1CollectFull(int gc_count_before,
    1.10 -                   GCCause::Cause gc_cause)
    1.11 -    : VM_GC_Operation(gc_count_before)
    1.12 -  {
    1.13 -    _gc_cause = gc_cause;
    1.14 +  VM_G1CollectFull(unsigned int gc_count_before,
    1.15 +                   unsigned int full_gc_count_before,
    1.16 +                   GCCause::Cause cause)
    1.17 +    : VM_GC_Operation(gc_count_before, full_gc_count_before) {
    1.18 +    _gc_cause = cause;
    1.19    }
    1.20    ~VM_G1CollectFull() {}
    1.21    virtual VMOp_Type type() const { return VMOp_G1CollectFull; }
    1.22 @@ -67,12 +66,28 @@
    1.23  };
    1.24  
    1.25  class VM_G1IncCollectionPause: public VM_GC_Operation {
    1.26 - public:
    1.27 -  VM_G1IncCollectionPause(int gc_count_before,
    1.28 -                          GCCause::Cause gc_cause = GCCause::_g1_inc_collection_pause) :
    1.29 -    VM_GC_Operation(gc_count_before) { _gc_cause = gc_cause; }
    1.30 +private:
    1.31 +  bool _should_initiate_conc_mark;
    1.32 +  double _target_pause_time_ms;
    1.33 +  unsigned int _full_collections_completed_before;
    1.34 +public:
    1.35 +  VM_G1IncCollectionPause(unsigned int   gc_count_before,
    1.36 +                          bool           should_initiate_conc_mark,
    1.37 +                          double         target_pause_time_ms,
    1.38 +                          GCCause::Cause cause)
    1.39 +    : VM_GC_Operation(gc_count_before),
    1.40 +      _full_collections_completed_before(0),
    1.41 +      _should_initiate_conc_mark(should_initiate_conc_mark),
    1.42 +      _target_pause_time_ms(target_pause_time_ms) {
    1.43 +    guarantee(target_pause_time_ms > 0.0,
    1.44 +              err_msg("target_pause_time_ms = %1.6lf should be positive",
    1.45 +                      target_pause_time_ms));
    1.46 +
    1.47 +    _gc_cause = cause;
    1.48 +  }
    1.49    virtual VMOp_Type type() const { return VMOp_G1IncCollectionPause; }
    1.50    virtual void doit();
    1.51 +  virtual void doit_epilogue();
    1.52    virtual const char* name() const {
    1.53      return "garbage-first incremental collection pause";
    1.54    }

mercurial