8182397: Race in field updates when creating ArrayKlasses can lead to crash

Update array_klass field in component mirror after klass.java_mirror field for concurrent readers in compiled code

Reviewed-by: aph, kbarrett
This commit is contained in:
Coleen Phillimore 2017-07-24 17:46:06 -04:00
parent fe6e4eb1e0
commit fd08aa9cef
5 changed files with 108 additions and 16 deletions

View file

@ -237,7 +237,7 @@ class java_lang_Class : AllStatic {
static oop primitive_mirror(BasicType t);
// JVM_NewArray support
static Klass* array_klass(oop java_class);
static void set_array_klass(oop java_class, Klass* klass);
static void release_set_array_klass(oop java_class, Klass* klass);
// compiler support for class operations
static int klass_offset_in_bytes() { return _klass_offset; }
static int array_klass_offset_in_bytes() { return _array_klass_offset; }