diff src/share/vm/oops/oop.inline.hpp @ 24157:f4e6ddeb5b6f jvmci-0.31

race in field updates when creating ArrayKlasses can lead to crash (JDK-8182397)
author Doug Simon <doug.simon@oracle.com>
date Wed, 19 Jul 2017 19:44:11 +0200
parents b5f3a471e646
children 0137da2b56d9
line wrap: on
line diff
--- a/src/share/vm/oops/oop.inline.hpp	Mon Jul 10 12:38:12 2017 +0200
+++ b/src/share/vm/oops/oop.inline.hpp	Wed Jul 19 19:44:11 2017 +0200
@@ -324,6 +324,12 @@
   *metadata_field_addr(offset) = value;
 }
 
+inline void oopDesc::metadata_field_put_volatile(int offset, Metadata* value) {
+  OrderAccess::release();
+  *metadata_field_addr(offset) = value;
+  OrderAccess::fence();
+}
+
 inline void oopDesc::obj_field_put_raw(int offset, oop value) {
   UseCompressedOops ?
     encode_store_heap_oop(obj_field_addr<narrowOop>(offset), value) :