< prev index next >

src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.cpp

Print this page

        

*** 5821,5831 **** MarkRefsIntoClosure::MarkRefsIntoClosure( MemRegion span, CMSBitMap* bitMap): _span(span), _bitMap(bitMap) { ! assert(ref_processor() == NULL, "deliberately left NULL"); assert(_bitMap->covers(_span), "_bitMap/_span mismatch"); } void MarkRefsIntoClosure::do_oop(oop obj) { // if p points into _span, then mark corresponding bit in _markBitMap --- 5821,5831 ---- MarkRefsIntoClosure::MarkRefsIntoClosure( MemRegion span, CMSBitMap* bitMap): _span(span), _bitMap(bitMap) { ! assert(ref_discoverer() == NULL, "deliberately left NULL"); assert(_bitMap->covers(_span), "_bitMap/_span mismatch"); } void MarkRefsIntoClosure::do_oop(oop obj) { // if p points into _span, then mark corresponding bit in _markBitMap
*** 5843,5853 **** ParMarkRefsIntoClosure::ParMarkRefsIntoClosure( MemRegion span, CMSBitMap* bitMap): _span(span), _bitMap(bitMap) { ! assert(ref_processor() == NULL, "deliberately left NULL"); assert(_bitMap->covers(_span), "_bitMap/_span mismatch"); } void ParMarkRefsIntoClosure::do_oop(oop obj) { // if p points into _span, then mark corresponding bit in _markBitMap --- 5843,5853 ---- ParMarkRefsIntoClosure::ParMarkRefsIntoClosure( MemRegion span, CMSBitMap* bitMap): _span(span), _bitMap(bitMap) { ! assert(ref_discoverer() == NULL, "deliberately left NULL"); assert(_bitMap->covers(_span), "_bitMap/_span mismatch"); } void ParMarkRefsIntoClosure::do_oop(oop obj) { // if p points into _span, then mark corresponding bit in _markBitMap
*** 5867,5877 **** MemRegion span, CMSBitMap* verification_bm, CMSBitMap* cms_bm): _span(span), _verification_bm(verification_bm), _cms_bm(cms_bm) { ! assert(ref_processor() == NULL, "deliberately left NULL"); assert(_verification_bm->covers(_span), "_verification_bm/_span mismatch"); } void MarkRefsIntoVerifyClosure::do_oop(oop obj) { // if p points into _span, then mark corresponding bit in _markBitMap --- 5867,5877 ---- MemRegion span, CMSBitMap* verification_bm, CMSBitMap* cms_bm): _span(span), _verification_bm(verification_bm), _cms_bm(cms_bm) { ! assert(ref_discoverer() == NULL, "deliberately left NULL"); assert(_verification_bm->covers(_span), "_verification_bm/_span mismatch"); } void MarkRefsIntoVerifyClosure::do_oop(oop obj) { // if p points into _span, then mark corresponding bit in _markBitMap
*** 5896,5925 **** ////////////////////////////////////////////////// // MarkRefsIntoAndScanClosure ////////////////////////////////////////////////// MarkRefsIntoAndScanClosure::MarkRefsIntoAndScanClosure(MemRegion span, ! ReferenceProcessor* rp, CMSBitMap* bit_map, CMSBitMap* mod_union_table, CMSMarkStack* mark_stack, CMSCollector* collector, bool should_yield, bool concurrent_precleaning): _collector(collector), _span(span), _bit_map(bit_map), _mark_stack(mark_stack), ! _pushAndMarkClosure(collector, span, rp, bit_map, mod_union_table, mark_stack, concurrent_precleaning), _yield(should_yield), _concurrent_precleaning(concurrent_precleaning), _freelistLock(NULL) { // FIXME: Should initialize in base class constructor. ! assert(rp != NULL, "ref_processor shouldn't be NULL"); ! set_ref_processor_internal(rp); } // This closure is used to mark refs into the CMS generation at the // second (final) checkpoint, and to scan and transitively follow // the unmarked oops. It is also used during the concurrent precleaning --- 5896,5925 ---- ////////////////////////////////////////////////// // MarkRefsIntoAndScanClosure ////////////////////////////////////////////////// MarkRefsIntoAndScanClosure::MarkRefsIntoAndScanClosure(MemRegion span, ! ReferenceDiscoverer* rd, CMSBitMap* bit_map, CMSBitMap* mod_union_table, CMSMarkStack* mark_stack, CMSCollector* collector, bool should_yield, bool concurrent_precleaning): _collector(collector), _span(span), _bit_map(bit_map), _mark_stack(mark_stack), ! _pushAndMarkClosure(collector, span, rd, bit_map, mod_union_table, mark_stack, concurrent_precleaning), _yield(should_yield), _concurrent_precleaning(concurrent_precleaning), _freelistLock(NULL) { // FIXME: Should initialize in base class constructor. ! assert(rd != NULL, "ref_discoverer shouldn't be NULL"); ! set_ref_discoverer_internal(rd); } // This closure is used to mark refs into the CMS generation at the // second (final) checkpoint, and to scan and transitively follow // the unmarked oops. It is also used during the concurrent precleaning
*** 6000,6021 **** /////////////////////////////////////////////////////////// // ParMarkRefsIntoAndScanClosure: a parallel version of // MarkRefsIntoAndScanClosure /////////////////////////////////////////////////////////// ParMarkRefsIntoAndScanClosure::ParMarkRefsIntoAndScanClosure( ! CMSCollector* collector, MemRegion span, ReferenceProcessor* rp, CMSBitMap* bit_map, OopTaskQueue* work_queue): _span(span), _bit_map(bit_map), _work_queue(work_queue), _low_water_mark(MIN2((work_queue->max_elems()/4), ((uint)CMSWorkQueueDrainThreshold * ParallelGCThreads))), ! _parPushAndMarkClosure(collector, span, rp, bit_map, work_queue) { // FIXME: Should initialize in base class constructor. ! assert(rp != NULL, "ref_processor shouldn't be NULL"); ! set_ref_processor_internal(rp); } // This closure is used to mark refs into the CMS generation at the // second (final) checkpoint, and to scan and transitively follow // the unmarked oops. The marks are made in the marking bit map and --- 6000,6021 ---- /////////////////////////////////////////////////////////// // ParMarkRefsIntoAndScanClosure: a parallel version of // MarkRefsIntoAndScanClosure /////////////////////////////////////////////////////////// ParMarkRefsIntoAndScanClosure::ParMarkRefsIntoAndScanClosure( ! CMSCollector* collector, MemRegion span, ReferenceDiscoverer* rd, CMSBitMap* bit_map, OopTaskQueue* work_queue): _span(span), _bit_map(bit_map), _work_queue(work_queue), _low_water_mark(MIN2((work_queue->max_elems()/4), ((uint)CMSWorkQueueDrainThreshold * ParallelGCThreads))), ! _parPushAndMarkClosure(collector, span, rd, bit_map, work_queue) { // FIXME: Should initialize in base class constructor. ! assert(rd != NULL, "ref_discoverer shouldn't be NULL"); ! set_ref_discoverer_internal(rd); } // This closure is used to mark refs into the CMS generation at the // second (final) checkpoint, and to scan and transitively follow // the unmarked oops. The marks are made in the marking bit map and
*** 6838,6861 **** void ParPushOrMarkClosure::do_oop(oop* p) { ParPushOrMarkClosure::do_oop_work(p); } void ParPushOrMarkClosure::do_oop(narrowOop* p) { ParPushOrMarkClosure::do_oop_work(p); } PushAndMarkClosure::PushAndMarkClosure(CMSCollector* collector, MemRegion span, ! ReferenceProcessor* rp, CMSBitMap* bit_map, CMSBitMap* mod_union_table, CMSMarkStack* mark_stack, bool concurrent_precleaning): ! MetadataAwareOopClosure(rp), _collector(collector), _span(span), _bit_map(bit_map), _mod_union_table(mod_union_table), _mark_stack(mark_stack), _concurrent_precleaning(concurrent_precleaning) { ! assert(ref_processor() != NULL, "ref_processor shouldn't be NULL"); } // Grey object rescan during pre-cleaning and second checkpoint phases -- // the non-parallel version (the parallel version appears further below.) void PushAndMarkClosure::do_oop(oop obj) { --- 6838,6861 ---- void ParPushOrMarkClosure::do_oop(oop* p) { ParPushOrMarkClosure::do_oop_work(p); } void ParPushOrMarkClosure::do_oop(narrowOop* p) { ParPushOrMarkClosure::do_oop_work(p); } PushAndMarkClosure::PushAndMarkClosure(CMSCollector* collector, MemRegion span, ! ReferenceDiscoverer* rd, CMSBitMap* bit_map, CMSBitMap* mod_union_table, CMSMarkStack* mark_stack, bool concurrent_precleaning): ! MetadataAwareOopClosure(rd), _collector(collector), _span(span), _bit_map(bit_map), _mod_union_table(mod_union_table), _mark_stack(mark_stack), _concurrent_precleaning(concurrent_precleaning) { ! assert(ref_discoverer() != NULL, "ref_discoverer shouldn't be NULL"); } // Grey object rescan during pre-cleaning and second checkpoint phases -- // the non-parallel version (the parallel version appears further below.) void PushAndMarkClosure::do_oop(oop obj) {
*** 6912,6931 **** } } ParPushAndMarkClosure::ParPushAndMarkClosure(CMSCollector* collector, MemRegion span, ! ReferenceProcessor* rp, CMSBitMap* bit_map, OopTaskQueue* work_queue): ! MetadataAwareOopClosure(rp), _collector(collector), _span(span), _bit_map(bit_map), _work_queue(work_queue) { ! assert(ref_processor() != NULL, "ref_processor shouldn't be NULL"); } void PushAndMarkClosure::do_oop(oop* p) { PushAndMarkClosure::do_oop_work(p); } void PushAndMarkClosure::do_oop(narrowOop* p) { PushAndMarkClosure::do_oop_work(p); } --- 6912,6931 ---- } } ParPushAndMarkClosure::ParPushAndMarkClosure(CMSCollector* collector, MemRegion span, ! ReferenceDiscoverer* rd, CMSBitMap* bit_map, OopTaskQueue* work_queue): ! MetadataAwareOopClosure(rd), _collector(collector), _span(span), _bit_map(bit_map), _work_queue(work_queue) { ! assert(ref_discoverer() != NULL, "ref_discoverer shouldn't be NULL"); } void PushAndMarkClosure::do_oop(oop* p) { PushAndMarkClosure::do_oop_work(p); } void PushAndMarkClosure::do_oop(narrowOop* p) { PushAndMarkClosure::do_oop_work(p); }
< prev index next >