File tree Expand file tree Collapse file tree 1 file changed +7
-0
lines changed
substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/graal/jdk Expand file tree Collapse file tree 1 file changed +7
-0
lines changed Original file line number Diff line number Diff line change 41
41
import org .graalvm .compiler .nodes .ValueNode ;
42
42
import org .graalvm .compiler .nodes .extended .BranchProbabilityNode ;
43
43
import org .graalvm .compiler .nodes .extended .ForeignCallNode ;
44
+ import org .graalvm .compiler .nodes .extended .MembarNode ;
44
45
import org .graalvm .compiler .nodes .java .ArrayLengthNode ;
45
46
import org .graalvm .compiler .nodes .spi .LoweringTool ;
46
47
import org .graalvm .compiler .nodes .spi .VirtualizerTool ;
@@ -176,6 +177,12 @@ private static Object doClone(Object original) throws CloneNotSupportedException
176
177
BarrieredAccess .writeObject (result , monitorOffset , null );
177
178
}
178
179
180
+ /*
181
+ * Emit a STORE_STORE barrier to ensure that other threads see consistent values for final
182
+ * fields and VM internal fields.
183
+ */
184
+ MembarNode .memoryBarrier (MembarNode .FenceKind .STORE_STORE );
185
+
179
186
return result ;
180
187
}
181
188
You can’t perform that action at this time.
0 commit comments