equal
deleted
inserted
replaced
632 |
632 |
633 |
633 |
634 class ZMarkConcurrentRootsTask : public ZTask { |
634 class ZMarkConcurrentRootsTask : public ZTask { |
635 private: |
635 private: |
636 SuspendibleThreadSetJoiner _sts_joiner; |
636 SuspendibleThreadSetJoiner _sts_joiner; |
637 ZConcurrentRootsIterator _roots; |
637 ZConcurrentRootsIteratorClaimStrong _roots; |
638 ZMarkConcurrentRootsIteratorClosure _cl; |
638 ZMarkConcurrentRootsIteratorClosure _cl; |
639 |
639 |
640 public: |
640 public: |
641 ZMarkConcurrentRootsTask(ZMark* mark) : |
641 ZMarkConcurrentRootsTask(ZMark* mark) : |
642 ZTask("ZMarkConcurrentRootsTask"), |
642 ZTask("ZMarkConcurrentRootsTask"), |
643 _sts_joiner(true /* active */), |
643 _sts_joiner(), |
644 _roots(ClassLoaderData::_claim_strong), |
644 _roots(), |
645 _cl() { |
645 _cl() { |
646 ClassLoaderDataGraph_lock->lock(); |
646 ClassLoaderDataGraph_lock->lock(); |
647 ClassLoaderDataGraph::clear_claimed_marks(); |
|
648 } |
647 } |
649 |
648 |
650 ~ZMarkConcurrentRootsTask() { |
649 ~ZMarkConcurrentRootsTask() { |
651 ClassLoaderDataGraph_lock->unlock(); |
650 ClassLoaderDataGraph_lock->unlock(); |
652 } |
651 } |