src/hotspot/share/gc/g1/g1VMOperations.hpp
changeset 53983 7935353a466a
parent 53244 9807daeb47c4
child 59067 f080b08daace
equal deleted inserted replaced
53982:05d35241e1e9 53983:7935353a466a
    33 //   - VM_G1Concurrent
    33 //   - VM_G1Concurrent
    34 //   - VM_G1CollectForAllocation
    34 //   - VM_G1CollectForAllocation
    35 //   - VM_G1CollectFull
    35 //   - VM_G1CollectFull
    36 
    36 
    37 class VM_G1CollectFull : public VM_GC_Operation {
    37 class VM_G1CollectFull : public VM_GC_Operation {
       
    38   bool _gc_succeeded;
       
    39 
    38 public:
    40 public:
    39   VM_G1CollectFull(uint gc_count_before,
    41   VM_G1CollectFull(uint gc_count_before,
    40                    uint full_gc_count_before,
    42                    uint full_gc_count_before,
    41                    GCCause::Cause cause) :
    43                    GCCause::Cause cause) :
    42     VM_GC_Operation(gc_count_before, cause, full_gc_count_before, true) { }
    44     VM_GC_Operation(gc_count_before, cause, full_gc_count_before, true),
       
    45     _gc_succeeded(false) { }
    43   virtual VMOp_Type type() const { return VMOp_G1CollectFull; }
    46   virtual VMOp_Type type() const { return VMOp_G1CollectFull; }
    44   virtual void doit();
    47   virtual void doit();
       
    48   bool gc_succeeded() { return _gc_succeeded; }
    45 };
    49 };
    46 
    50 
    47 class VM_G1CollectForAllocation : public VM_CollectForAllocation {
    51 class VM_G1CollectForAllocation : public VM_CollectForAllocation {
    48   bool         _pause_succeeded;
    52   bool _gc_succeeded;
    49 
    53 
    50   bool         _should_initiate_conc_mark;
    54   bool _should_initiate_conc_mark;
    51   bool         _should_retry_gc;
    55   bool _should_retry_gc;
    52   double       _target_pause_time_ms;
    56   double _target_pause_time_ms;
    53   uint         _old_marking_cycles_completed_before;
    57   uint  _old_marking_cycles_completed_before;
    54 
    58 
    55 public:
    59 public:
    56   VM_G1CollectForAllocation(size_t         word_size,
    60   VM_G1CollectForAllocation(size_t         word_size,
    57                             uint           gc_count_before,
    61                             uint           gc_count_before,
    58                             GCCause::Cause gc_cause,
    62                             GCCause::Cause gc_cause,
    61   virtual VMOp_Type type() const { return VMOp_G1CollectForAllocation; }
    65   virtual VMOp_Type type() const { return VMOp_G1CollectForAllocation; }
    62   virtual bool doit_prologue();
    66   virtual bool doit_prologue();
    63   virtual void doit();
    67   virtual void doit();
    64   virtual void doit_epilogue();
    68   virtual void doit_epilogue();
    65   bool should_retry_gc() const { return _should_retry_gc; }
    69   bool should_retry_gc() const { return _should_retry_gc; }
    66   bool pause_succeeded() { return _pause_succeeded; }
    70   bool gc_succeeded() { return _gc_succeeded; }
    67 };
    71 };
    68 
    72 
    69 // Concurrent G1 stop-the-world operations such as remark and cleanup.
    73 // Concurrent G1 stop-the-world operations such as remark and cleanup.
    70 class VM_G1Concurrent : public VM_Operation {
    74 class VM_G1Concurrent : public VM_Operation {
    71   VoidClosure* _cl;
    75   VoidClosure* _cl;