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, |