1 package org.openjdk.bench.vm.gc.barriers.cas;
2
3 import org.openjdk.jmh.annotations.*;
4
5 import java.util.concurrent.TimeUnit;
6 import java.util.concurrent.atomic.AtomicReference;
7
8 @Warmup(iterations = 3, time = 1, timeUnit = TimeUnit.SECONDS)
9 @Measurement(iterations = 3, time = 1, timeUnit = TimeUnit.SECONDS)
10 @Fork(3)
11 @BenchmarkMode(Mode.AverageTime)
12 @OutputTimeUnit(TimeUnit.NANOSECONDS)
13 @State(Scope.Thread)
14 public class RefFailure {
15
16 AtomicReference<Object> ref;
17
18 Object o1 = new Object();
19 Object o2 = new Object();
20
21 @Setup
22 public void setup() {
23 ref = new AtomicReference<>();
24 ref.set(o2);
25 }
26
27 @Benchmark
28 @CompilerControl(CompilerControl.Mode.DONT_INLINE)
29 public void test() {
30 ref.compareAndSet(o1, o2);
31 }
32
33 }