8368599: ShenandoahConcurrentMark could use ThreadsClaimTokenScope

Reviewed-by: ayang, shade, wkemper
This commit is contained in:
Francesco Andreuzzi 2025-09-30 16:15:21 +00:00 committed by Aleksey Shipilev
parent 07ecc93dbd
commit fe9dbcc496

View File

@ -25,7 +25,6 @@
#include "gc/shared/satbMarkQueue.hpp"
#include "gc/shared/strongRootsScope.hpp"
#include "gc/shared/taskTerminator.hpp"
#include "gc/shenandoah/shenandoahBarrierSet.inline.hpp"
#include "gc/shenandoah/shenandoahClosures.inline.hpp"
@ -94,10 +93,12 @@ private:
ShenandoahConcurrentMark* _cm;
TaskTerminator* _terminator;
bool _dedup_string;
ThreadsClaimTokenScope _threads_claim_token_scope; // needed for Threads::possibly_parallel_threads_do
public:
ShenandoahFinalMarkingTask(ShenandoahConcurrentMark* cm, TaskTerminator* terminator, bool dedup_string) :
WorkerTask("Shenandoah Final Mark"), _cm(cm), _terminator(terminator), _dedup_string(dedup_string) {
WorkerTask("Shenandoah Final Mark"), _cm(cm), _terminator(terminator), _dedup_string(dedup_string),
_threads_claim_token_scope() {
}
void work(uint worker_id) {
@ -297,7 +298,6 @@ void ShenandoahConcurrentMark::finish_mark_work() {
uint nworkers = heap->workers()->active_workers();
task_queues()->reserve(nworkers);
StrongRootsScope scope(nworkers);
TaskTerminator terminator(nworkers, task_queues());
switch (_generation->type()) {