< prev index next >

src/hotspot/share/classfile/classLoaderData.hpp

Print this page




 107   friend class MetaDataFactory;
 108   friend class Method;
 109 
 110   static ClassLoaderData * _the_null_class_loader_data;
 111 
 112   WeakHandle<vm_class_loader_data> _holder; // The oop that determines lifetime of this class loader
 113   OopHandle _class_loader;    // The instance of java/lang/ClassLoader associated with
 114                               // this ClassLoaderData
 115 
 116   ClassLoaderMetaspace * volatile _metaspace;  // Meta-space where meta-data defined by the
 117                                     // classes in the class loader are allocated.
 118   Mutex* _metaspace_lock;  // Locks the metaspace for allocations and setup.
 119   bool _unloading;         // true if this class loader goes away
 120   bool _is_unsafe_anonymous; // CLD is dedicated to one class and that class determines the CLDs lifecycle.
 121                              // For example, an unsafe anonymous class.
 122 
 123   // Remembered sets support for the oops in the class loader data.
 124   bool _modified_oops;             // Card Table Equivalent (YC/CMS support)
 125   bool _accumulated_modified_oops; // Mod Union Equivalent (CMS support)
 126 
 127   s2 _keep_alive;          // if this CLD is kept alive.
 128                            // Used for unsafe anonymous classes and the boot class
 129                            // loader. _keep_alive does not need to be volatile or
 130                            // atomic since there is one unique CLD per unsafe anonymous class.
 131 
 132   volatile int _claim; // non-zero if claimed, for example during GC traces.
 133                        // To avoid applying oop closure more than once.
 134   ChunkedHandleList _handles; // Handles to constant pool arrays, Modules, etc, which
 135                               // have the same life cycle of the corresponding ClassLoader.
 136 
 137   NOT_PRODUCT(volatile int _dependency_count;)  // number of class loader dependencies
 138 
 139   Klass* volatile _klasses;              // The classes defined by the class loader.
 140   PackageEntryTable* volatile _packages; // The packages defined by the class loader.
 141   ModuleEntryTable*  volatile _modules;  // The modules defined by the class loader.
 142   ModuleEntry* _unnamed_module;          // This class loader's unnamed module.
 143   Dictionary*  _dictionary;              // The loaded InstanceKlasses, including initiated by this class loader
 144 
 145   // These method IDs are created for the class loader and set to NULL when the
 146   // class loader is unloaded.  They are rarely freed, only for redefine classes
 147   // and if they lose a data race in InstanceKlass.




 107   friend class MetaDataFactory;
 108   friend class Method;
 109 
 110   static ClassLoaderData * _the_null_class_loader_data;
 111 
 112   WeakHandle<vm_class_loader_data> _holder; // The oop that determines lifetime of this class loader
 113   OopHandle _class_loader;    // The instance of java/lang/ClassLoader associated with
 114                               // this ClassLoaderData
 115 
 116   ClassLoaderMetaspace * volatile _metaspace;  // Meta-space where meta-data defined by the
 117                                     // classes in the class loader are allocated.
 118   Mutex* _metaspace_lock;  // Locks the metaspace for allocations and setup.
 119   bool _unloading;         // true if this class loader goes away
 120   bool _is_unsafe_anonymous; // CLD is dedicated to one class and that class determines the CLDs lifecycle.
 121                              // For example, an unsafe anonymous class.
 122 
 123   // Remembered sets support for the oops in the class loader data.
 124   bool _modified_oops;             // Card Table Equivalent (YC/CMS support)
 125   bool _accumulated_modified_oops; // Mod Union Equivalent (CMS support)
 126 
 127   int _keep_alive;         // if this CLD is kept alive.
 128                            // Used for unsafe anonymous classes and the boot class
 129                            // loader. _keep_alive does not need to be volatile or
 130                            // atomic since there is one unique CLD per unsafe anonymous class.
 131 
 132   volatile int _claim; // non-zero if claimed, for example during GC traces.
 133                        // To avoid applying oop closure more than once.
 134   ChunkedHandleList _handles; // Handles to constant pool arrays, Modules, etc, which
 135                               // have the same life cycle of the corresponding ClassLoader.
 136 
 137   NOT_PRODUCT(volatile int _dependency_count;)  // number of class loader dependencies
 138 
 139   Klass* volatile _klasses;              // The classes defined by the class loader.
 140   PackageEntryTable* volatile _packages; // The packages defined by the class loader.
 141   ModuleEntryTable*  volatile _modules;  // The modules defined by the class loader.
 142   ModuleEntry* _unnamed_module;          // This class loader's unnamed module.
 143   Dictionary*  _dictionary;              // The loaded InstanceKlasses, including initiated by this class loader
 144 
 145   // These method IDs are created for the class loader and set to NULL when the
 146   // class loader is unloaded.  They are rarely freed, only for redefine classes
 147   // and if they lose a data race in InstanceKlass.


< prev index next >