mirror of
https://github.com/openjdk/jdk.git
synced 2026-05-21 02:48:02 +00:00
8377704: Shenandoah: Convert ShenandoahNMethod to use Atomic<T>
Reviewed-by: shade, xpeng, wkemper
This commit is contained in:
parent
2925eb8cfb
commit
fbc705d2cc
@ -433,8 +433,8 @@ void ShenandoahNMethodTableSnapshot::parallel_nmethods_do(NMethodClosure *f) {
|
||||
ShenandoahNMethod** const list = _list->list();
|
||||
|
||||
size_t max = (size_t)_limit;
|
||||
while (_claimed < max) {
|
||||
size_t cur = AtomicAccess::fetch_then_add(&_claimed, stride, memory_order_relaxed);
|
||||
while (_claimed.load_relaxed() < max) {
|
||||
size_t cur = _claimed.fetch_then_add(stride, memory_order_relaxed);
|
||||
size_t start = cur;
|
||||
size_t end = MIN2(cur + stride, max);
|
||||
if (start >= max) break;
|
||||
@ -457,8 +457,8 @@ void ShenandoahNMethodTableSnapshot::concurrent_nmethods_do(NMethodClosure* cl)
|
||||
|
||||
ShenandoahNMethod** list = _list->list();
|
||||
size_t max = (size_t)_limit;
|
||||
while (_claimed < max) {
|
||||
size_t cur = AtomicAccess::fetch_then_add(&_claimed, stride, memory_order_relaxed);
|
||||
while (_claimed.load_relaxed() < max) {
|
||||
size_t cur = _claimed.fetch_then_add(stride, memory_order_relaxed);
|
||||
size_t start = cur;
|
||||
size_t end = MIN2(cur + stride, max);
|
||||
if (start >= max) break;
|
||||
|
||||
@ -30,6 +30,7 @@
|
||||
#include "gc/shenandoah/shenandoahLock.hpp"
|
||||
#include "gc/shenandoah/shenandoahPadding.hpp"
|
||||
#include "memory/allocation.hpp"
|
||||
#include "runtime/atomic.hpp"
|
||||
#include "utilities/growableArray.hpp"
|
||||
|
||||
// ShenandoahNMethod tuple records the internal locations of oop slots within reclocation stream in
|
||||
@ -115,7 +116,7 @@ private:
|
||||
int _limit;
|
||||
|
||||
shenandoah_padding(0);
|
||||
volatile size_t _claimed;
|
||||
Atomic<size_t> _claimed;
|
||||
shenandoah_padding(1);
|
||||
|
||||
public:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user