< prev index next >
src/share/vm/gc/cms/concurrentMarkSweepGeneration.hpp
Print this page
*** 508,528 ****
friend class CMSRefProcTaskProxy;
friend class CMSRefProcTaskExecutor;
friend class ScanMarkedObjectsAgainCarefullyClosure; // for sampling eden
friend class SurvivorSpacePrecleanClosure; // --- ditto -------
friend class PushOrMarkClosure; // to access _restart_addr
! friend class Par_PushOrMarkClosure; // to access _restart_addr
friend class MarkFromRootsClosure; // -- ditto --
// ... and for clearing cards
! friend class Par_MarkFromRootsClosure; // to access _restart_addr
// ... and for clearing cards
! friend class Par_ConcMarkingClosure; // to access _restart_addr etc.
friend class MarkFromRootsVerifyClosure; // to access _restart_addr
friend class PushAndMarkVerifyClosure; // -- ditto --
friend class MarkRefsIntoAndScanClosure; // to access _overflow_list
friend class PushAndMarkClosure; // -- ditto --
! friend class Par_PushAndMarkClosure; // -- ditto --
friend class CMSKeepAliveClosure; // -- ditto --
friend class CMSDrainMarkingStackClosure; // -- ditto --
friend class CMSInnerParMarkAndPushClosure; // -- ditto --
NOT_PRODUCT(friend class ScanMarkedObjectsAgainClosure;) // assertion on _overflow_list
friend class ReleaseForegroundGC; // to access _foregroundGCShouldWait
--- 508,528 ----
friend class CMSRefProcTaskProxy;
friend class CMSRefProcTaskExecutor;
friend class ScanMarkedObjectsAgainCarefullyClosure; // for sampling eden
friend class SurvivorSpacePrecleanClosure; // --- ditto -------
friend class PushOrMarkClosure; // to access _restart_addr
! friend class ParPushOrMarkClosure; // to access _restart_addr
friend class MarkFromRootsClosure; // -- ditto --
// ... and for clearing cards
! friend class ParMarkFromRootsClosure; // to access _restart_addr
// ... and for clearing cards
! friend class ParConcMarkingClosure; // to access _restart_addr etc.
friend class MarkFromRootsVerifyClosure; // to access _restart_addr
friend class PushAndMarkVerifyClosure; // -- ditto --
friend class MarkRefsIntoAndScanClosure; // to access _overflow_list
friend class PushAndMarkClosure; // -- ditto --
! friend class ParPushAndMarkClosure; // -- ditto --
friend class CMSKeepAliveClosure; // -- ditto --
friend class CMSDrainMarkingStackClosure; // -- ditto --
friend class CMSInnerParMarkAndPushClosure; // -- ditto --
NOT_PRODUCT(friend class ScanMarkedObjectsAgainClosure;) // assertion on _overflow_list
friend class ReleaseForegroundGC; // to access _foregroundGCShouldWait
*** 1280,1290 ****
// This closure is used to do concurrent multi-threaded
// marking from the roots following the first checkpoint.
// XXX This should really be a subclass of The serial version
// above, but i have not had the time to refactor things cleanly.
! class Par_MarkFromRootsClosure: public BitMapClosure {
CMSCollector* _collector;
MemRegion _whole_span;
MemRegion _span;
CMSBitMap* _bit_map;
CMSBitMap* _mut;
--- 1280,1290 ----
// This closure is used to do concurrent multi-threaded
// marking from the roots following the first checkpoint.
// XXX This should really be a subclass of The serial version
// above, but i have not had the time to refactor things cleanly.
! class ParMarkFromRootsClosure: public BitMapClosure {
CMSCollector* _collector;
MemRegion _whole_span;
MemRegion _span;
CMSBitMap* _bit_map;
CMSBitMap* _mut;
*** 1293,1303 ****
int _skip_bits;
HeapWord* _finger;
HeapWord* _threshold;
CMSConcMarkingTask* _task;
public:
! Par_MarkFromRootsClosure(CMSConcMarkingTask* task, CMSCollector* collector,
MemRegion span,
CMSBitMap* bit_map,
OopTaskQueue* work_queue,
CMSMarkStack* overflow_stack);
bool do_bit(size_t offset);
--- 1293,1303 ----
int _skip_bits;
HeapWord* _finger;
HeapWord* _threshold;
CMSConcMarkingTask* _task;
public:
! ParMarkFromRootsClosure(CMSConcMarkingTask* task, CMSCollector* collector,
MemRegion span,
CMSBitMap* bit_map,
OopTaskQueue* work_queue,
CMSMarkStack* overflow_stack);
bool do_bit(size_t offset);
*** 1399,1409 ****
#endif // ASSERT
bool _parallel;
CMSBitMap* _bit_map;
union {
MarkRefsIntoAndScanClosure* _scan_closure;
! Par_MarkRefsIntoAndScanClosure* _par_scan_closure;
};
public:
ScanMarkedObjectsAgainClosure(CMSCollector* collector,
MemRegion span,
--- 1399,1409 ----
#endif // ASSERT
bool _parallel;
CMSBitMap* _bit_map;
union {
MarkRefsIntoAndScanClosure* _scan_closure;
! ParMarkRefsIntoAndScanClosure* _par_scan_closure;
};
public:
ScanMarkedObjectsAgainClosure(CMSCollector* collector,
MemRegion span,
*** 1423,1433 ****
ScanMarkedObjectsAgainClosure(CMSCollector* collector,
MemRegion span,
ReferenceProcessor* rp,
CMSBitMap* bit_map,
OopTaskQueue* work_queue,
! Par_MarkRefsIntoAndScanClosure* cl):
#ifdef ASSERT
_collector(collector),
_span(span),
_work_queue(work_queue),
#endif // ASSERT
--- 1423,1433 ----
ScanMarkedObjectsAgainClosure(CMSCollector* collector,
MemRegion span,
ReferenceProcessor* rp,
CMSBitMap* bit_map,
OopTaskQueue* work_queue,
! ParMarkRefsIntoAndScanClosure* cl):
#ifdef ASSERT
_collector(collector),
_span(span),
_work_queue(work_queue),
#endif // ASSERT
*** 1468,1478 ****
MarkFromDirtyCardsClosure(CMSCollector* collector,
MemRegion span,
CompactibleFreeListSpace* space,
CMSBitMap* bit_map,
OopTaskQueue* work_queue,
! Par_MarkRefsIntoAndScanClosure* cl):
_space(space),
_num_dirty_cards(0),
_scan_cl(collector, span, collector->ref_processor(), bit_map,
work_queue, cl) { }
--- 1468,1478 ----
MarkFromDirtyCardsClosure(CMSCollector* collector,
MemRegion span,
CompactibleFreeListSpace* space,
CMSBitMap* bit_map,
OopTaskQueue* work_queue,
! ParMarkRefsIntoAndScanClosure* cl):
_space(space),
_num_dirty_cards(0),
_scan_cl(collector, span, collector->ref_processor(), bit_map,
work_queue, cl) { }
< prev index next >