8262087: Use atomic boolean type in G1FullGCAdjustTask

Reviewed-by: kbarrett, tschatzl
This commit is contained in:
Albert Mingkun Yang 2021-02-23 09:27:57 +00:00 committed by Thomas Schatzl
parent a5c4b9a6b0
commit 12f6ba0deb
2 changed files with 3 additions and 4 deletions

View File

@ -81,7 +81,7 @@ class G1AdjustRegionClosure : public HeapRegionClosure {
G1FullGCAdjustTask::G1FullGCAdjustTask(G1FullCollector* collector) :
G1FullGCTask("G1 Adjust", collector),
_root_processor(G1CollectedHeap::heap(), collector->workers()),
_references_done(0),
_references_done(false),
_weak_proc_task(collector->workers()),
_hrclaimer(collector->workers()),
_adjust(collector),
@ -99,8 +99,7 @@ void G1FullGCAdjustTask::work(uint worker_id) {
marker->preserved_stack()->adjust_during_full_gc();
// Adjust the weak roots.
if (Atomic::add(&_references_done, 1u) == 1u) { // First incr claims task.
if (!Atomic::cmpxchg(&_references_done, false, true)) {
G1CollectedHeap::heap()->ref_processor_stw()->weak_oops_do(&_adjust);
}

View File

@ -38,7 +38,7 @@ class G1CollectedHeap;
class G1FullGCAdjustTask : public G1FullGCTask {
G1RootProcessor _root_processor;
volatile uint _references_done; // Atomic counter / bool
volatile bool _references_done;
WeakProcessor::Task _weak_proc_task;
HeapRegionClaimer _hrclaimer;
G1AdjustClosure _adjust;