< prev index next >

src/hotspot/share/classfile/moduleEntry.hpp

Print this page
rev 56464 : 8231707: Improve Mutex inlining
Contributed-by: robbin.ehn@oracle.com, claes.redestad@oracle.com


 128 
 129   bool             is_open() const                     { return _is_open; }
 130   void             set_is_open(bool is_open);
 131 
 132   bool             is_named() const                    { return (name() != NULL); }
 133 
 134   bool can_read_all_unnamed() const {
 135     assert(is_named() || _can_read_all_unnamed == true,
 136            "unnamed modules can always read all unnamed modules");
 137     return _can_read_all_unnamed;
 138   }
 139 
 140   // Modules can only go from strict to loose.
 141   void set_can_read_all_unnamed() { _can_read_all_unnamed = true; }
 142 
 143   bool has_default_read_edges() const {
 144     return _has_default_read_edges;
 145   }
 146 
 147   // Sets true and returns the previous value.
 148   bool set_has_default_read_edges() {
 149     MutexLocker ml(Module_lock);
 150     bool prev = _has_default_read_edges;
 151     _has_default_read_edges = true;
 152     return prev;
 153   }
 154 
 155   void set_is_patched() {
 156       _is_patched = true;
 157   }
 158   bool is_patched() {
 159       return _is_patched;
 160   }
 161 
 162   ModuleEntry* next() const {
 163     return (ModuleEntry*)HashtableEntry<Symbol*, mtModule>::next();
 164   }
 165   ModuleEntry** next_addr() {
 166     return (ModuleEntry**)HashtableEntry<Symbol*, mtModule>::next_addr();
 167   }
 168 
 169   // iteration support for readability
 170   void module_reads_do(ModuleClosure* const f);
 171 
 172   // Purge dead weak references out of reads list when any given class loader is unloaded.
 173   void purge_reads();




 128 
 129   bool             is_open() const                     { return _is_open; }
 130   void             set_is_open(bool is_open);
 131 
 132   bool             is_named() const                    { return (name() != NULL); }
 133 
 134   bool can_read_all_unnamed() const {
 135     assert(is_named() || _can_read_all_unnamed == true,
 136            "unnamed modules can always read all unnamed modules");
 137     return _can_read_all_unnamed;
 138   }
 139 
 140   // Modules can only go from strict to loose.
 141   void set_can_read_all_unnamed() { _can_read_all_unnamed = true; }
 142 
 143   bool has_default_read_edges() const {
 144     return _has_default_read_edges;
 145   }
 146 
 147   // Sets true and returns the previous value.
 148   bool set_has_default_read_edges();





 149 
 150   void set_is_patched() {
 151       _is_patched = true;
 152   }
 153   bool is_patched() {
 154       return _is_patched;
 155   }
 156 
 157   ModuleEntry* next() const {
 158     return (ModuleEntry*)HashtableEntry<Symbol*, mtModule>::next();
 159   }
 160   ModuleEntry** next_addr() {
 161     return (ModuleEntry**)HashtableEntry<Symbol*, mtModule>::next_addr();
 162   }
 163 
 164   // iteration support for readability
 165   void module_reads_do(ModuleClosure* const f);
 166 
 167   // Purge dead weak references out of reads list when any given class loader is unloaded.
 168   void purge_reads();


< prev index next >