< prev index next >

src/hotspot/share/classfile/classLoaderData.hpp

Print this page
rev 60538 : imported patch jep387-misc.patch


  45 //
  46 // A class loader represents a linkset. Conceptually, a linkset identifies
  47 // the complete transitive closure of resolved links that a dynamic linker can
  48 // produce.
  49 //
  50 // A ClassLoaderData also encapsulates the allocation space, called a metaspace,
  51 // used by the dynamic linker to allocate the runtime representation of all
  52 // the types it defines.
  53 //
  54 // ClassLoaderData are stored in the runtime representation of classes,
  55 // and provides iterators for root tracing and other GC operations.
  56 
  57 class ClassLoaderDataGraph;
  58 class JNIMethodBlock;
  59 class ModuleEntry;
  60 class PackageEntry;
  61 class ModuleEntryTable;
  62 class PackageEntryTable;
  63 class DictionaryEntry;
  64 class Dictionary;

  65 
  66 // ClassLoaderData class
  67 
  68 class ClassLoaderData : public CHeapObj<mtClass> {
  69   friend class VMStructs;
  70 
  71  private:
  72   class ChunkedHandleList {
  73     struct Chunk : public CHeapObj<mtClass> {
  74       static const size_t CAPACITY = 32;
  75 
  76       oop _data[CAPACITY];
  77       volatile juint _size;
  78       Chunk* _next;
  79 
  80       Chunk(Chunk* c) : _size(0), _next(c) { }
  81     };
  82 
  83     Chunk* volatile _head;
  84 




  45 //
  46 // A class loader represents a linkset. Conceptually, a linkset identifies
  47 // the complete transitive closure of resolved links that a dynamic linker can
  48 // produce.
  49 //
  50 // A ClassLoaderData also encapsulates the allocation space, called a metaspace,
  51 // used by the dynamic linker to allocate the runtime representation of all
  52 // the types it defines.
  53 //
  54 // ClassLoaderData are stored in the runtime representation of classes,
  55 // and provides iterators for root tracing and other GC operations.
  56 
  57 class ClassLoaderDataGraph;
  58 class JNIMethodBlock;
  59 class ModuleEntry;
  60 class PackageEntry;
  61 class ModuleEntryTable;
  62 class PackageEntryTable;
  63 class DictionaryEntry;
  64 class Dictionary;
  65 class ClassLoaderMetaspace;
  66 
  67 // ClassLoaderData class
  68 
  69 class ClassLoaderData : public CHeapObj<mtClass> {
  70   friend class VMStructs;
  71 
  72  private:
  73   class ChunkedHandleList {
  74     struct Chunk : public CHeapObj<mtClass> {
  75       static const size_t CAPACITY = 32;
  76 
  77       oop _data[CAPACITY];
  78       volatile juint _size;
  79       Chunk* _next;
  80 
  81       Chunk(Chunk* c) : _size(0), _next(c) { }
  82     };
  83 
  84     Chunk* volatile _head;
  85 


< prev index next >