From 72522f835bc28f10e08c5fab98c5f01225eca4fc Mon Sep 17 00:00:00 2001 From: chenggwang <90715678+chenggwang@users.noreply.github.com> Date: Fri, 15 Sep 2023 15:26:07 +0800 Subject: [PATCH] directly replace Fence with the methods setRelease, setVolatile, and getAcquire Since we already have VALUE_FIELD, it is more semantically clear to directly replace Fence with the methods setRelease, setVolatile, and getAcquire. No need to set barriers via VarHandle --- .../alternatives/SequenceVarHandleBarrier.java | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/src/test/java/com/lmax/disruptor/alternatives/SequenceVarHandleBarrier.java b/src/test/java/com/lmax/disruptor/alternatives/SequenceVarHandleBarrier.java index 10c04869b..b8ddb75de 100644 --- a/src/test/java/com/lmax/disruptor/alternatives/SequenceVarHandleBarrier.java +++ b/src/test/java/com/lmax/disruptor/alternatives/SequenceVarHandleBarrier.java @@ -74,8 +74,7 @@ public SequenceVarHandleBarrier() */ public SequenceVarHandleBarrier(final long initialValue) { - VarHandle.releaseFence(); - this.value = initialValue; + VALUE_FIELD.setRelease(this,initialValue); } /** @@ -85,9 +84,7 @@ public SequenceVarHandleBarrier(final long initialValue) */ public long get() { - long value = this.value; - VarHandle.acquireFence(); - return value; + return (long) VALUE_FIELD.getAcquire(this); } /** @@ -99,8 +96,7 @@ public long get() */ public void set(final long value) { - VarHandle.releaseFence(); - this.value = value; + VALUE_FIELD.setRelease(this,value); } /** @@ -113,9 +109,7 @@ public void set(final long value) */ public void setVolatile(final long value) { - VarHandle.releaseFence(); - this.value = value; - VarHandle.fullFence(); + VALUE_FIELD.setVolatile(this,value); } /** @@ -156,4 +150,4 @@ public String toString() { return Long.toString(get()); } -} \ No newline at end of file +}