src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp

Print this page

        

*** 590,599 **** --- 590,600 ---- // the current CMS cycle and could lead to stack resizing efforts at // an opportune future time. size_t _ser_pmc_preclean_ovflw; size_t _ser_pmc_remark_ovflw; size_t _par_pmc_remark_ovflw; + size_t _ser_kac_preclean_ovflw; size_t _ser_kac_ovflw; size_t _par_kac_ovflw; NOT_PRODUCT(size_t _num_par_pushes;) // ("Weak") Reference processing support
*** 1747,1771 **** // During CMS' weak reference processing, this is a // work-routine/closure used to complete transitive // marking of objects as live after a certain point // in which an initial set has been completely accumulated. class CMSDrainMarkingStackClosure: public VoidClosure { CMSCollector* _collector; MemRegion _span; CMSMarkStack* _mark_stack; CMSBitMap* _bit_map; CMSKeepAliveClosure* _keep_alive; public: CMSDrainMarkingStackClosure(CMSCollector* collector, MemRegion span, CMSBitMap* bit_map, CMSMarkStack* mark_stack, ! CMSKeepAliveClosure* keep_alive): _collector(collector), _span(span), _bit_map(bit_map), _mark_stack(mark_stack), ! _keep_alive(keep_alive) { } void do_void(); }; // A parallel version of CMSDrainMarkingStackClosure above. --- 1748,1781 ---- // During CMS' weak reference processing, this is a // work-routine/closure used to complete transitive // marking of objects as live after a certain point // in which an initial set has been completely accumulated. + // This closure is currently used both during the final + // remark stop-world phase, as well as during the concurrent + // precleaning of the discovered reference lists. class CMSDrainMarkingStackClosure: public VoidClosure { CMSCollector* _collector; MemRegion _span; CMSMarkStack* _mark_stack; CMSBitMap* _bit_map; CMSKeepAliveClosure* _keep_alive; + bool _concurrent_precleaning; public: CMSDrainMarkingStackClosure(CMSCollector* collector, MemRegion span, CMSBitMap* bit_map, CMSMarkStack* mark_stack, ! CMSKeepAliveClosure* keep_alive, ! bool concurrent_precleaning): _collector(collector), _span(span), _bit_map(bit_map), _mark_stack(mark_stack), ! _keep_alive(keep_alive), ! _concurrent_precleaning(concurrent_precleaning) { ! assert(_concurrent_precleaning == _keep_alive->_concurrent_precleaning, ! "Mismatch"); ! } void do_void(); }; // A parallel version of CMSDrainMarkingStackClosure above.