src/hotspot/share/classfile/systemDictionary.cpp
changeset 50419 146c60525d4a
parent 50297 580744d900c8
child 50429 83aec1d357d4
equal deleted inserted replaced
50418:c35f0c531c6c 50419:146c60525d4a
   108 oop         SystemDictionary::_java_system_loader         =  NULL;
   108 oop         SystemDictionary::_java_system_loader         =  NULL;
   109 oop         SystemDictionary::_java_platform_loader       =  NULL;
   109 oop         SystemDictionary::_java_platform_loader       =  NULL;
   110 
   110 
   111 bool        SystemDictionary::_has_checkPackageAccess     =  false;
   111 bool        SystemDictionary::_has_checkPackageAccess     =  false;
   112 
   112 
   113 // lazily initialized klass variables
       
   114 InstanceKlass* volatile SystemDictionary::_abstract_ownable_synchronizer_klass = NULL;
       
   115 
       
   116 // Default ProtectionDomainCacheSize value
   113 // Default ProtectionDomainCacheSize value
   117 
   114 
   118 const int defaultProtectionDomainCacheSize = 1009;
   115 const int defaultProtectionDomainCacheSize = 1009;
   119 
   116 
   120 OopStorage* SystemDictionary::_vm_weak_oop_storage = NULL;
   117 OopStorage* SystemDictionary::_vm_weak_oop_storage = NULL;
  1892 
  1889 
  1893 void SystemDictionary::remove_classes_in_error_state() {
  1890 void SystemDictionary::remove_classes_in_error_state() {
  1894   ClassLoaderData::the_null_class_loader_data()->dictionary()->remove_classes_in_error_state();
  1891   ClassLoaderData::the_null_class_loader_data()->dictionary()->remove_classes_in_error_state();
  1895   RemoveClassesClosure rcc;
  1892   RemoveClassesClosure rcc;
  1896   ClassLoaderDataGraph::cld_do(&rcc);
  1893   ClassLoaderDataGraph::cld_do(&rcc);
  1897 }
       
  1898 
       
  1899 // ----------------------------------------------------------------------------
       
  1900 // Lazily load klasses
       
  1901 
       
  1902 void SystemDictionary::load_abstract_ownable_synchronizer_klass(TRAPS) {
       
  1903   // if multiple threads calling this function, only one thread will load
       
  1904   // the class.  The other threads will find the loaded version once the
       
  1905   // class is loaded.
       
  1906   Klass* aos = _abstract_ownable_synchronizer_klass;
       
  1907   if (aos == NULL) {
       
  1908     Klass* k = resolve_or_fail(vmSymbols::java_util_concurrent_locks_AbstractOwnableSynchronizer(), true, CHECK);
       
  1909     // Force a fence to prevent any read before the write completes
       
  1910     OrderAccess::fence();
       
  1911     _abstract_ownable_synchronizer_klass = InstanceKlass::cast(k);
       
  1912   }
       
  1913 }
  1894 }
  1914 
  1895 
  1915 // ----------------------------------------------------------------------------
  1896 // ----------------------------------------------------------------------------
  1916 // Initialization
  1897 // Initialization
  1917 
  1898