180 &pt); |
180 &pt); |
181 gc_tracer()->report_gc_reference_stats(stats); |
181 gc_tracer()->report_gc_reference_stats(stats); |
182 pt.print_all_references(); |
182 pt.print_all_references(); |
183 } |
183 } |
184 |
184 |
|
185 // This is the point where the entire marking should have completed. |
|
186 assert(GenMarkSweep::_marking_stack.is_empty(), "Marking should have completed"); |
|
187 |
185 { |
188 { |
186 GCTraceTime(Debug, gc, phases) trace("Weak Processing", gc_timer()); |
189 GCTraceTime(Debug, gc, phases) trace("Weak Processing", gc_timer()); |
187 WeakProcessor::weak_oops_do(&GenMarkSweep::is_alive, |
190 WeakProcessor::weak_oops_do(&GenMarkSweep::is_alive, &do_nothing_cl); |
188 &GenMarkSweep::keep_alive, |
191 } |
189 &GenMarkSweep::follow_stack_closure); |
|
190 } |
|
191 |
|
192 // This is the point where the entire marking should have completed. |
|
193 assert(GenMarkSweep::_marking_stack.is_empty(), "Marking should have completed"); |
|
194 |
192 |
195 if (ClassUnloading) { |
193 if (ClassUnloading) { |
196 GCTraceTime(Debug, gc, phases) trace("Class Unloading", gc_timer()); |
194 GCTraceTime(Debug, gc, phases) trace("Class Unloading", gc_timer()); |
197 |
195 |
198 // Unload classes and purge the SystemDictionary. |
196 // Unload classes and purge the SystemDictionary. |