2424 */
2525
2626
27-
28- #include " gc/shared/strongRootsScope.hpp"
27+ #include " code/nmethod.hpp"
2928#include " gc/shared/taskTerminator.hpp"
3029#include " gc/shared/workerThread.hpp"
3130#include " gc/shenandoah/shenandoahClosures.inline.hpp"
3635#include " gc/shenandoah/shenandoahRootProcessor.inline.hpp"
3736#include " gc/shenandoah/shenandoahSTWMark.hpp"
3837#include " gc/shenandoah/shenandoahVerifier.hpp"
38+ #include " runtime/threads.hpp"
3939
4040class ShenandoahSTWMarkTask : public WorkerTask {
4141private:
4242 ShenandoahSTWMark* const _mark;
43+ NMethodMarkingScope _nmethod_marking_scope;
44+ ThreadsClaimTokenScope _threads_claim_token_scope;
4345
4446public:
4547 ShenandoahSTWMarkTask (ShenandoahSTWMark* mark);
@@ -48,7 +50,9 @@ class ShenandoahSTWMarkTask : public WorkerTask {
4850
4951ShenandoahSTWMarkTask::ShenandoahSTWMarkTask (ShenandoahSTWMark* mark) :
5052 WorkerTask(" Shenandoah STW mark" ),
51- _mark(mark) {
53+ _mark(mark),
54+ _nmethod_marking_scope(),
55+ _threads_claim_token_scope() {
5256}
5357
5458void ShenandoahSTWMarkTask::work (uint worker_id) {
@@ -98,7 +102,6 @@ void ShenandoahSTWMark::mark() {
98102 _generation->scan_remembered_set (false /* is_concurrent */ );
99103 }
100104
101- StrongRootsScope scope (nworkers);
102105 ShenandoahSTWMarkTask task (this );
103106 heap->workers ()->run_task (&task);
104107
0 commit comments