src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp

Print this page

        

*** 328,337 **** --- 328,338 ---- NOT_PRODUCT(reference_processor()->verify_no_references_recorded()); COMPILER2_PRESENT(DerivedPointerTable::clear()); reference_processor()->enable_discovery(); + reference_processor()->snap_policy(false); // We track how much was promoted to the next generation for // the AdaptiveSizePolicy. size_t old_gen_used_before = old_gen->used_in_bytes();
*** 392,419 **** scavenge_midpoint.update(); // Process reference objects discovered during scavenge { ! #ifdef COMPILER2 ! ReferencePolicy *soft_ref_policy = new LRUMaxHeapPolicy(); ! #else ! ReferencePolicy *soft_ref_policy = new LRUCurrentHeapPolicy(); ! #endif // COMPILER2 ! PSKeepAliveClosure keep_alive(promotion_manager); PSEvacuateFollowersClosure evac_followers(promotion_manager); - assert(soft_ref_policy != NULL,"No soft reference policy"); if (reference_processor()->processing_is_mt()) { PSRefProcTaskExecutor task_executor; reference_processor()->process_discovered_references( ! soft_ref_policy, &_is_alive_closure, &keep_alive, &evac_followers, ! &task_executor); } else { reference_processor()->process_discovered_references( ! soft_ref_policy, &_is_alive_closure, &keep_alive, &evac_followers, ! NULL); } } // Enqueue reference objects discovered during scavenge. if (reference_processor()->processing_is_mt()) { --- 393,412 ---- scavenge_midpoint.update(); // Process reference objects discovered during scavenge { ! reference_processor()->snap_policy(false); // not always_clear PSKeepAliveClosure keep_alive(promotion_manager); PSEvacuateFollowersClosure evac_followers(promotion_manager); if (reference_processor()->processing_is_mt()) { PSRefProcTaskExecutor task_executor; reference_processor()->process_discovered_references( ! &_is_alive_closure, &keep_alive, &evac_followers, &task_executor); } else { reference_processor()->process_discovered_references( ! &_is_alive_closure, &keep_alive, &evac_followers, NULL); } } // Enqueue reference objects discovered during scavenge. if (reference_processor()->processing_is_mt()) {