hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.hpp
changeset 28178 1e72ace206d0
parent 25492 d27050bdfb04
child 29701 f638fc81a3d0
equal deleted inserted replaced
28177:318600b0d7db 28178:1e72ace206d0
    39   static jlong               _time_of_last_gc;   // ms
    39   static jlong               _time_of_last_gc;   // ms
    40   static CollectorCounters*  _counters;
    40   static CollectorCounters*  _counters;
    41 
    41 
    42   // Closure accessors
    42   // Closure accessors
    43   static OopClosure* mark_and_push_closure()   { return &MarkSweep::mark_and_push_closure; }
    43   static OopClosure* mark_and_push_closure()   { return &MarkSweep::mark_and_push_closure; }
    44   static VoidClosure* follow_stack_closure()   { return (VoidClosure*)&MarkSweep::follow_stack_closure; }
    44   static VoidClosure* follow_stack_closure()   { return &MarkSweep::follow_stack_closure; }
    45   static CLDClosure* follow_cld_closure()      { return &MarkSweep::follow_cld_closure; }
    45   static CLDClosure* follow_cld_closure()      { return &MarkSweep::follow_cld_closure; }
    46   static OopClosure* adjust_pointer_closure()  { return (OopClosure*)&MarkSweep::adjust_pointer_closure; }
    46   static OopClosure* adjust_pointer_closure()  { return &MarkSweep::adjust_pointer_closure; }
    47   static CLDClosure* adjust_cld_closure()      { return &MarkSweep::adjust_cld_closure; }
    47   static CLDClosure* adjust_cld_closure()      { return &MarkSweep::adjust_cld_closure; }
    48   static BoolObjectClosure* is_alive_closure() { return (BoolObjectClosure*)&MarkSweep::is_alive; }
    48   static BoolObjectClosure* is_alive_closure() { return &MarkSweep::is_alive; }
    49 
    49 
    50  debug_only(public:)  // Used for PSParallelCompact debugging
       
    51   // Mark live objects
    50   // Mark live objects
    52   static void mark_sweep_phase1(bool clear_all_softrefs);
    51   static void mark_sweep_phase1(bool clear_all_softrefs);
    53   // Calculate new addresses
    52   // Calculate new addresses
    54   static void mark_sweep_phase2();
    53   static void mark_sweep_phase2();
    55  debug_only(private:) // End used for PSParallelCompact debugging
       
    56   // Update pointers
    54   // Update pointers
    57   static void mark_sweep_phase3();
    55   static void mark_sweep_phase3();
    58   // Move objects to new positions
    56   // Move objects to new positions
    59   static void mark_sweep_phase4();
    57   static void mark_sweep_phase4();
    60 
    58 
    61  debug_only(public:)  // Used for PSParallelCompact debugging
       
    62   // Temporary data structures for traversal and storing/restoring marks
    59   // Temporary data structures for traversal and storing/restoring marks
    63   static void allocate_stacks();
    60   static void allocate_stacks();
    64   static void deallocate_stacks();
    61   static void deallocate_stacks();
    65   static void set_ref_processor(ReferenceProcessor* rp) {  // delete this method
       
    66     _ref_processor = rp;
       
    67   }
       
    68  debug_only(private:) // End used for PSParallelCompact debugging
       
    69 
    62 
    70   // If objects are left in eden after a collection, try to move the boundary
    63   // If objects are left in eden after a collection, try to move the boundary
    71   // and absorb them into the old gen.  Returns true if eden was emptied.
    64   // and absorb them into the old gen.  Returns true if eden was emptied.
    72   static bool absorb_live_data_from_eden(PSAdaptiveSizePolicy* size_policy,
    65   static bool absorb_live_data_from_eden(PSAdaptiveSizePolicy* size_policy,
    73                                          PSYoungGen* young_gen,
    66                                          PSYoungGen* young_gen,