498 class CMSRefProcTaskExecutor: public AbstractRefProcTaskExecutor { 499 public: 500 501 CMSRefProcTaskExecutor(CMSCollector& collector) 502 : _collector(collector) 503 { } 504 505 // Executes a task using worker threads. 506 virtual void execute(ProcessTask& task); 507 virtual void execute(EnqueueTask& task); 508 private: 509 CMSCollector& _collector; 510 }; 511 512 513 class CMSCollector: public CHeapObj<mtGC> { 514 friend class VMStructs; 515 friend class ConcurrentMarkSweepThread; 516 friend class ConcurrentMarkSweepGeneration; 517 friend class CompactibleFreeListSpace; 518 friend class CMSParRemarkTask; 519 friend class CMSConcMarkingTask; 520 friend class CMSRefProcTaskProxy; 521 friend class CMSRefProcTaskExecutor; 522 friend class ScanMarkedObjectsAgainCarefullyClosure; // for sampling eden 523 friend class SurvivorSpacePrecleanClosure; // --- ditto ------- 524 friend class PushOrMarkClosure; // to access _restart_addr 525 friend class Par_PushOrMarkClosure; // to access _restart_addr 526 friend class MarkFromRootsClosure; // -- ditto -- 527 // ... and for clearing cards 528 friend class Par_MarkFromRootsClosure; // to access _restart_addr 529 // ... and for clearing cards 530 friend class Par_ConcMarkingClosure; // to access _restart_addr etc. 531 friend class MarkFromRootsVerifyClosure; // to access _restart_addr 532 friend class PushAndMarkVerifyClosure; // -- ditto -- 533 friend class MarkRefsIntoAndScanClosure; // to access _overflow_list 534 friend class PushAndMarkClosure; // -- ditto -- 535 friend class Par_PushAndMarkClosure; // -- ditto -- 536 friend class CMSKeepAliveClosure; // -- ditto -- 537 friend class CMSDrainMarkingStackClosure; // -- ditto -- | 498 class CMSRefProcTaskExecutor: public AbstractRefProcTaskExecutor { 499 public: 500 501 CMSRefProcTaskExecutor(CMSCollector& collector) 502 : _collector(collector) 503 { } 504 505 // Executes a task using worker threads. 506 virtual void execute(ProcessTask& task); 507 virtual void execute(EnqueueTask& task); 508 private: 509 CMSCollector& _collector; 510 }; 511 512 513 class CMSCollector: public CHeapObj<mtGC> { 514 friend class VMStructs; 515 friend class ConcurrentMarkSweepThread; 516 friend class ConcurrentMarkSweepGeneration; 517 friend class CompactibleFreeListSpace; 518 friend class CMSParMarkTask; 519 friend class CMSParInitialMarkTask; 520 friend class CMSParRemarkTask; 521 friend class CMSConcMarkingTask; 522 friend class CMSRefProcTaskProxy; 523 friend class CMSRefProcTaskExecutor; 524 friend class ScanMarkedObjectsAgainCarefullyClosure; // for sampling eden 525 friend class SurvivorSpacePrecleanClosure; // --- ditto ------- 526 friend class PushOrMarkClosure; // to access _restart_addr 527 friend class Par_PushOrMarkClosure; // to access _restart_addr 528 friend class MarkFromRootsClosure; // -- ditto -- 529 // ... and for clearing cards 530 friend class Par_MarkFromRootsClosure; // to access _restart_addr 531 // ... and for clearing cards 532 friend class Par_ConcMarkingClosure; // to access _restart_addr etc. 533 friend class MarkFromRootsVerifyClosure; // to access _restart_addr 534 friend class PushAndMarkVerifyClosure; // -- ditto -- 535 friend class MarkRefsIntoAndScanClosure; // to access _overflow_list 536 friend class PushAndMarkClosure; // -- ditto -- 537 friend class Par_PushAndMarkClosure; // -- ditto -- 538 friend class CMSKeepAliveClosure; // -- ditto -- 539 friend class CMSDrainMarkingStackClosure; // -- ditto -- |