src/hotspot/share/jvmci/jvmciCompilerToVM.cpp
changeset 51379 802f7e5e7e6b
parent 51078 fc6cfe40e32a
child 51444 3e5d28e6de32
--- a/src/hotspot/share/jvmci/jvmciCompilerToVM.cpp	Fri Aug 10 22:38:18 2018 -0400
+++ b/src/hotspot/share/jvmci/jvmciCompilerToVM.cpp	Sat Aug 11 12:49:33 2018 -0400
@@ -382,7 +382,12 @@
         err_msg("Expected interface type, got %s", klass->external_name()));
   }
   InstanceKlass* iklass = InstanceKlass::cast(klass);
-  JVMCIKlassHandle handle(THREAD, iklass->implementor());
+  JVMCIKlassHandle handle(THREAD);
+  {
+    // Need Compile_lock around implementor()
+    MutexLocker locker(Compile_lock);
+    handle = iklass->implementor();
+  }
   oop implementor = CompilerToVM::get_jvmci_type(handle, CHECK_NULL);
   return JNIHandles::make_local(THREAD, implementor);
 C2V_END