# HG changeset patch # User eosterlund # Date 1542704898 -3600 # Node ID 5b4242996d8c2d4449ed4da7fbbab09600b710df # Parent 4ed308e0e89b334f6a75fc107ae55756c98c0e69 8212682: Avoid holding Compile_lock when blocking for GC in ObjArrayKlass::allocate_objArray_klass() Reviewed-by: coleenp, dlong diff -r 4ed308e0e89b -r 5b4242996d8c src/hotspot/share/oops/instanceKlass.cpp --- a/src/hotspot/share/oops/instanceKlass.cpp Tue Nov 20 09:35:15 2018 +0100 +++ b/src/hotspot/share/oops/instanceKlass.cpp Tue Nov 20 10:08:18 2018 +0100 @@ -1282,7 +1282,6 @@ JavaThread *jt = (JavaThread *)THREAD; { // Atomic creation of array_klasses - MutexLocker mc(Compile_lock, THREAD); // for vtables MutexLocker ma(MultiArray_lock, THREAD); // Check if update has already taken place diff -r 4ed308e0e89b -r 5b4242996d8c src/hotspot/share/oops/objArrayKlass.cpp --- a/src/hotspot/share/oops/objArrayKlass.cpp Tue Nov 20 09:35:15 2018 +0100 +++ b/src/hotspot/share/oops/objArrayKlass.cpp Tue Nov 20 10:08:18 2018 +0100 @@ -80,7 +80,6 @@ Klass* ek = NULL; { MutexUnlocker mu(MultiArray_lock); - MutexUnlocker mc(Compile_lock); // for vtables super_klass = element_super->array_klass(CHECK_0); for( int i = element_supers->length()-1; i >= 0; i-- ) { Klass* elem_super = element_supers->at(i); @@ -332,7 +331,6 @@ ResourceMark rm; JavaThread *jt = (JavaThread *)THREAD; { - MutexLocker mc(Compile_lock, THREAD); // for vtables // Ensure atomic creation of higher dimensions MutexLocker mu(MultiArray_lock, THREAD); diff -r 4ed308e0e89b -r 5b4242996d8c src/hotspot/share/oops/typeArrayKlass.cpp --- a/src/hotspot/share/oops/typeArrayKlass.cpp Tue Nov 20 09:35:15 2018 +0100 +++ b/src/hotspot/share/oops/typeArrayKlass.cpp Tue Nov 20 10:08:18 2018 +0100 @@ -195,7 +195,6 @@ ResourceMark rm; JavaThread *jt = (JavaThread *)THREAD; { - MutexLocker mc(Compile_lock, THREAD); // for vtables // Atomic create higher dimension and link into list MutexLocker mu(MultiArray_lock, THREAD); diff -r 4ed308e0e89b -r 5b4242996d8c src/hotspot/share/prims/jvmtiExport.cpp --- a/src/hotspot/share/prims/jvmtiExport.cpp Tue Nov 20 09:35:15 2018 +0100 +++ b/src/hotspot/share/prims/jvmtiExport.cpp Tue Nov 20 10:08:18 2018 +0100 @@ -2944,8 +2944,7 @@ return false; } - if (Compile_lock->owner() == thread || - MultiArray_lock->owner() == thread) { + if (MultiArray_lock->owner() == thread) { return false; } return true;