< prev index next >

src/hotspot/share/classfile/classLoaderData.hpp

Print this page
rev 57601 : [mq]: metaspace-improvement

*** 25,35 **** #ifndef SHARE_CLASSFILE_CLASSLOADERDATA_HPP #define SHARE_CLASSFILE_CLASSLOADERDATA_HPP #include "memory/allocation.hpp" #include "memory/memRegion.hpp" - #include "memory/metaspace.hpp" #include "oops/oopHandle.hpp" #include "oops/weakHandle.hpp" #include "runtime/atomic.hpp" #include "runtime/mutex.hpp" #include "utilities/growableArray.hpp" --- 25,34 ----
*** 61,70 **** --- 60,73 ---- class ModuleEntryTable; class PackageEntryTable; class DictionaryEntry; class Dictionary; + namespace metaspace { + class ClassLoaderMetaspace; + } + // ClassLoaderData class class ClassLoaderData : public CHeapObj<mtClass> { friend class VMStructs;
*** 111,121 **** WeakHandle<vm_class_loader_data> _holder; // The oop that determines lifetime of this class loader OopHandle _class_loader; // The instance of java/lang/ClassLoader associated with // this ClassLoaderData ! ClassLoaderMetaspace * volatile _metaspace; // Meta-space where meta-data defined by the // classes in the class loader are allocated. Mutex* _metaspace_lock; // Locks the metaspace for allocations and setup. bool _unloading; // true if this class loader goes away bool _is_unsafe_anonymous; // CLD is dedicated to one class and that class determines the CLDs lifecycle. // For example, an unsafe anonymous class. --- 114,124 ---- WeakHandle<vm_class_loader_data> _holder; // The oop that determines lifetime of this class loader OopHandle _class_loader; // The instance of java/lang/ClassLoader associated with // this ClassLoaderData ! metaspace::ClassLoaderMetaspace* volatile _metaspace; // Meta-space where meta-data defined by the // classes in the class loader are allocated. Mutex* _metaspace_lock; // Locks the metaspace for allocations and setup. bool _unloading; // true if this class loader goes away bool _is_unsafe_anonymous; // CLD is dedicated to one class and that class determines the CLDs lifecycle. // For example, an unsafe anonymous class.
*** 221,231 **** // Computes if the CLD is alive or not. This is safe to call in concurrent // contexts. bool is_alive() const; // Accessors ! ClassLoaderMetaspace* metaspace_or_null() const { return _metaspace; } static ClassLoaderData* the_null_class_loader_data() { return _the_null_class_loader_data; } --- 224,234 ---- // Computes if the CLD is alive or not. This is safe to call in concurrent // contexts. bool is_alive() const; // Accessors ! metaspace::ClassLoaderMetaspace* metaspace_or_null() const { return _metaspace; } static ClassLoaderData* the_null_class_loader_data() { return _the_null_class_loader_data; }
*** 254,264 **** bool is_builtin_class_loader_data() const; bool is_permanent_class_loader_data() const; // The Metaspace is created lazily so may be NULL. This // method will allocate a Metaspace if needed. ! ClassLoaderMetaspace* metaspace_non_null(); inline oop class_loader() const; // Returns true if this class loader data is for a loader going away. // Note that this is only safe after the GC has computed if the CLD is --- 257,267 ---- bool is_builtin_class_loader_data() const; bool is_permanent_class_loader_data() const; // The Metaspace is created lazily so may be NULL. This // method will allocate a Metaspace if needed. ! metaspace::ClassLoaderMetaspace* metaspace_non_null(); inline oop class_loader() const; // Returns true if this class loader data is for a loader going away. // Note that this is only safe after the GC has computed if the CLD is
< prev index next >