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 ;
@@ -170,6 +171,12 @@ private static Object doClone(Object original) throws CloneNotSupportedException
170
171
BarrieredAccess .writeObject (result , monitorOffset , null );
171
172
}
172
173
174
+ /*
175
+ * Emit a STORE_STORE barrier to ensure that other threads see consistent values for final
176
+ * fields and VM internal fields.
177
+ */
178
+ MembarNode .memoryBarrier (MembarNode .FenceKind .STORE_STORE );
179
+
173
180
return result ;
174
181
}
175
182
You can’t perform that action at this time.
0 commit comments