diff --git a/src/hotspot/share/gc/g1/g1ParallelCleaning.cpp b/src/hotspot/share/gc/g1/g1ParallelCleaning.cpp index 3e46fc31a51..3525f576463 100644 --- a/src/hotspot/share/gc/g1/g1ParallelCleaning.cpp +++ b/src/hotspot/share/gc/g1/g1ParallelCleaning.cpp @@ -32,15 +32,15 @@ #if INCLUDE_JVMCI JVMCICleaningTask::JVMCICleaningTask() : - _cleaning_claimed(0) { + _cleaning_claimed(false) { } bool JVMCICleaningTask::claim_cleaning_task() { - if (_cleaning_claimed) { + if (Atomic::load(&_cleaning_claimed)) { return false; } - return Atomic::cmpxchg(&_cleaning_claimed, 0, 1) == 0; + return !Atomic::cmpxchg(&_cleaning_claimed, false, true); } void JVMCICleaningTask::work(bool unloading_occurred) { diff --git a/src/hotspot/share/gc/g1/g1ParallelCleaning.hpp b/src/hotspot/share/gc/g1/g1ParallelCleaning.hpp index a1c2c731685..df9b1dddf6c 100644 --- a/src/hotspot/share/gc/g1/g1ParallelCleaning.hpp +++ b/src/hotspot/share/gc/g1/g1ParallelCleaning.hpp @@ -29,7 +29,7 @@ #if INCLUDE_JVMCI class JVMCICleaningTask : public StackObj { - volatile int _cleaning_claimed; + volatile bool _cleaning_claimed; public: JVMCICleaningTask();