429 do_yield_work(addr);
430 }
431 }
432
433 inline void MarkRefsIntoAndScanClosure::do_yield_check() {
434 // The conditions are ordered for the remarking phase
435 // when _yield is false.
436 if (_yield &&
437 !_collector->foregroundGCIsActive() &&
438 ConcurrentMarkSweepThread::should_yield()) {
439 do_yield_work();
440 }
441 }
442
443
444 inline void ModUnionClosure::do_MemRegion(MemRegion mr) {
445 // Align the end of mr so it's at a card boundary.
446 // This is superfluous except at the end of the space;
447 // we should do better than this XXX
448 MemRegion mr2(mr.start(), (HeapWord*)round_to((intptr_t)mr.end(),
449 CardTableModRefBS::card_size /* bytes */));
450 _t->mark_range(mr2);
451 }
452
453 inline void ModUnionClosurePar::do_MemRegion(MemRegion mr) {
454 // Align the end of mr so it's at a card boundary.
455 // This is superfluous except at the end of the space;
456 // we should do better than this XXX
457 MemRegion mr2(mr.start(), (HeapWord*)round_to((intptr_t)mr.end(),
458 CardTableModRefBS::card_size /* bytes */));
459 _t->par_mark_range(mr2);
460 }
461
462 #endif // SHARE_VM_GC_CMS_CONCURRENTMARKSWEEPGENERATION_INLINE_HPP
|
429 do_yield_work(addr);
430 }
431 }
432
433 inline void MarkRefsIntoAndScanClosure::do_yield_check() {
434 // The conditions are ordered for the remarking phase
435 // when _yield is false.
436 if (_yield &&
437 !_collector->foregroundGCIsActive() &&
438 ConcurrentMarkSweepThread::should_yield()) {
439 do_yield_work();
440 }
441 }
442
443
444 inline void ModUnionClosure::do_MemRegion(MemRegion mr) {
445 // Align the end of mr so it's at a card boundary.
446 // This is superfluous except at the end of the space;
447 // we should do better than this XXX
448 MemRegion mr2(mr.start(), (HeapWord*)round_to((intptr_t)mr.end(),
449 CardTable::card_size /* bytes */));
450 _t->mark_range(mr2);
451 }
452
453 inline void ModUnionClosurePar::do_MemRegion(MemRegion mr) {
454 // Align the end of mr so it's at a card boundary.
455 // This is superfluous except at the end of the space;
456 // we should do better than this XXX
457 MemRegion mr2(mr.start(), (HeapWord*)round_to((intptr_t)mr.end(),
458 CardTable::card_size /* bytes */));
459 _t->par_mark_range(mr2);
460 }
461
462 #endif // SHARE_VM_GC_CMS_CONCURRENTMARKSWEEPGENERATION_INLINE_HPP
|