src/hotspot/share/classfile/classLoaderData.hpp
changeset 51681 72bdaf11dd6a
parent 51608 625a5bdde0c5
child 51682 a30461a359f5
equal deleted inserted replaced
51680:d058b410af0a 51681:72bdaf11dd6a
   334   // GC interface.
   334   // GC interface.
   335   void clear_claimed() { _claimed = 0; }
   335   void clear_claimed() { _claimed = 0; }
   336   bool claimed() const { return _claimed == 1; }
   336   bool claimed() const { return _claimed == 1; }
   337   bool claim();
   337   bool claim();
   338 
   338 
       
   339   // Computes if the CLD is alive or not. This is safe to call in concurrent
       
   340   // contexts.
   339   bool is_alive() const;
   341   bool is_alive() const;
   340 
   342 
   341   // Accessors
   343   // Accessors
   342   ClassLoaderMetaspace* metaspace_or_null() const { return _metaspace; }
   344   ClassLoaderMetaspace* metaspace_or_null() const { return _metaspace; }
   343 
   345 
   375   ClassLoaderMetaspace* metaspace_non_null();
   377   ClassLoaderMetaspace* metaspace_non_null();
   376 
   378 
   377   inline oop class_loader() const;
   379   inline oop class_loader() const;
   378 
   380 
   379   // Returns true if this class loader data is for a loader going away.
   381   // Returns true if this class loader data is for a loader going away.
       
   382   // Note that this is only safe after the GC has computed if the CLD is
       
   383   // unloading or not. In concurrent contexts where there are no such
       
   384   // guarantees, is_alive() should be used instead.
   380   bool is_unloading() const     {
   385   bool is_unloading() const     {
   381     assert(!(is_the_null_class_loader_data() && _unloading), "The null class loader can never be unloaded");
   386     assert(!(is_the_null_class_loader_data() && _unloading), "The null class loader can never be unloaded");
   382     return _unloading;
   387     return _unloading;
   383   }
   388   }
   384 
   389