hotspot/src/share/vm/ci/ciEnv.cpp
changeset 8314 057b1c20fd7e
parent 8076 96d498ec7ae1
child 8333 11a7f6fc6419
--- a/hotspot/src/share/vm/ci/ciEnv.cpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/hotspot/src/share/vm/ci/ciEnv.cpp	Mon Jan 31 17:48:21 2011 -0800
@@ -412,13 +412,16 @@
     fail_type = _unloaded_ciinstance_klass;
   }
   KlassHandle found_klass;
-  if (!require_local) {
-    klassOop kls = SystemDictionary::find_constrained_instance_or_array_klass(
-        sym, loader, KILL_COMPILE_ON_FATAL_(fail_type));
-    found_klass = KlassHandle(THREAD, kls);
-  } else {
-    klassOop kls = SystemDictionary::find_instance_or_array_klass(
-        sym, loader, domain, KILL_COMPILE_ON_FATAL_(fail_type));
+  {
+    MutexLocker ml(Compile_lock);
+    klassOop kls;
+    if (!require_local) {
+      kls = SystemDictionary::find_constrained_instance_or_array_klass(sym, loader,
+                                                                       KILL_COMPILE_ON_FATAL_(fail_type));
+    } else {
+      kls = SystemDictionary::find_instance_or_array_klass(sym, loader, domain,
+                                                           KILL_COMPILE_ON_FATAL_(fail_type));
+    }
     found_klass = KlassHandle(THREAD, kls);
   }