From 55d297fdda70ad0b9b0378890a05cfc2a040c92c Mon Sep 17 00:00:00 2001 From: Calvin Cheung Date: Fri, 26 May 2023 18:04:01 +0000 Subject: [PATCH] 8308594: Use atomic bitset function for PackageEntry::_defined_by_cds_in_class_path Reviewed-by: coleenp, lfoltan --- src/hotspot/share/classfile/packageEntry.hpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/hotspot/share/classfile/packageEntry.hpp b/src/hotspot/share/classfile/packageEntry.hpp index 6fefd208ad639..213f115b2d08f 100644 --- a/src/hotspot/share/classfile/packageEntry.hpp +++ b/src/hotspot/share/classfile/packageEntry.hpp @@ -225,12 +225,7 @@ class PackageEntry : public CHeapObj { } void set_defined_by_cds_in_class_path(int idx) { assert(idx < max_index_for_defined_in_class_path(), "sanity"); - int old_val = 0; - int new_val = 0; - do { - old_val = Atomic::load(&_defined_by_cds_in_class_path); - new_val = old_val | ((int)1 << idx); - } while (Atomic::cmpxchg(&_defined_by_cds_in_class_path, old_val, new_val) != old_val); + Atomic::fetch_then_or(&_defined_by_cds_in_class_path, ((int)1 << idx)); } };