< prev index next >

src/share/vm/memory/defNewGeneration.cpp

Print this page




 610   CollectorPolicy* cp = gch->collector_policy();
 611 
 612   FastScanClosure fsc_with_no_gc_barrier(this, false);
 613   FastScanClosure fsc_with_gc_barrier(this, true);
 614 
 615   KlassScanClosure klass_scan_closure(&fsc_with_no_gc_barrier,
 616                                       gch->rem_set()->klass_rem_set());
 617   CLDToKlassAndOopClosure cld_scan_closure(&klass_scan_closure,
 618                                            &fsc_with_no_gc_barrier,
 619                                            false);
 620 
 621   set_promo_failure_scan_stack_closure(&fsc_with_no_gc_barrier);
 622   FastEvacuateFollowersClosure evacuate_followers(gch, _level, this,
 623                                                   &fsc_with_no_gc_barrier,
 624                                                   &fsc_with_gc_barrier);
 625 
 626   assert(gch->no_allocs_since_save_marks(0),
 627          "save marks have not been newly set.");
 628 
 629   {
 630     // SerialGC runs with n_workers == 0.
 631     StrongRootsScope srs(0);
 632 
 633     gch->gen_process_roots(&srs,
 634                            _level,
 635                            true,  // Process younger gens, if any,
 636                                   // as strong roots.
 637                            GenCollectedHeap::SO_ScavengeCodeCache,
 638                            GenCollectedHeap::StrongAndWeakRoots,
 639                            &fsc_with_no_gc_barrier,
 640                            &fsc_with_gc_barrier,
 641                            &cld_scan_closure);
 642   }
 643 
 644   // "evacuate followers".
 645   evacuate_followers.do_void();
 646 
 647   FastKeepAliveClosure keep_alive(this, &scan_weak_ref);
 648   ReferenceProcessor* rp = ref_processor();
 649   rp->setup_policy(clear_all_soft_refs);
 650   const ReferenceProcessorStats& stats =




 610   CollectorPolicy* cp = gch->collector_policy();
 611 
 612   FastScanClosure fsc_with_no_gc_barrier(this, false);
 613   FastScanClosure fsc_with_gc_barrier(this, true);
 614 
 615   KlassScanClosure klass_scan_closure(&fsc_with_no_gc_barrier,
 616                                       gch->rem_set()->klass_rem_set());
 617   CLDToKlassAndOopClosure cld_scan_closure(&klass_scan_closure,
 618                                            &fsc_with_no_gc_barrier,
 619                                            false);
 620 
 621   set_promo_failure_scan_stack_closure(&fsc_with_no_gc_barrier);
 622   FastEvacuateFollowersClosure evacuate_followers(gch, _level, this,
 623                                                   &fsc_with_no_gc_barrier,
 624                                                   &fsc_with_gc_barrier);
 625 
 626   assert(gch->no_allocs_since_save_marks(0),
 627          "save marks have not been newly set.");
 628 
 629   {
 630     // SerialGC runs with n_threads == 0.
 631     StrongRootsScope srs(0);
 632 
 633     gch->gen_process_roots(&srs,
 634                            _level,
 635                            true,  // Process younger gens, if any,
 636                                   // as strong roots.
 637                            GenCollectedHeap::SO_ScavengeCodeCache,
 638                            GenCollectedHeap::StrongAndWeakRoots,
 639                            &fsc_with_no_gc_barrier,
 640                            &fsc_with_gc_barrier,
 641                            &cld_scan_closure);
 642   }
 643 
 644   // "evacuate followers".
 645   evacuate_followers.do_void();
 646 
 647   FastKeepAliveClosure keep_alive(this, &scan_weak_ref);
 648   ReferenceProcessor* rp = ref_processor();
 649   rp->setup_policy(clear_all_soft_refs);
 650   const ReferenceProcessorStats& stats =


< prev index next >