< 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 >