< prev index next >

src/hotspot/share/jfr/leakprofiler/checkpoint/rootResolver.cpp

CLD claiming v2

109                                                    _info(),                                                                          
110                                                    _complete(false) {                                                                
111     _info._high = NULL;                                                                                                              
112     _info._low = NULL;                                                                                                               
113     _info._context = NULL;                                                                                                           
114     _info._system = OldObjectRoot::_system_undetermined;                                                                             
115     _info._type = OldObjectRoot::_type_undetermined;                                                                                 
116 
117     assert_locked_or_safepoint(Threads_lock);                                                                                        
118     do_roots();                                                                                                                      
119   }                                                                                                                                  
120 
121   bool complete() const {                                                                                                            
122     return _complete;                                                                                                                
123   }                                                                                                                                  
124 };                                                                                                                                   
125 
126 bool ReferenceToRootClosure::do_cldg_roots() {                                                                                       
127   assert(!complete(), "invariant");                                                                                                  
128   ReferenceLocateClosure rlc(_callback, OldObjectRoot::_class_loader_data, OldObjectRoot::_type_undetermined, NULL);                 
129   CLDToOopClosure cldt_closure(&rlc, ClassLoaderData::_claim_value_strong);                                                          
130   ClassLoaderDataGraph::always_strong_cld_do(&cldt_closure);                                                                         
131   return rlc.complete();                                                                                                             
132 }                                                                                                                                    
133 
134 bool ReferenceToRootClosure::do_object_synchronizer_roots() {                                                                        
135   assert(!complete(), "invariant");                                                                                                  
136   ReferenceLocateClosure rlc(_callback, OldObjectRoot::_object_synchronizer, OldObjectRoot::_type_undetermined, NULL);               
137   ObjectSynchronizer::oops_do(&rlc);                                                                                                 
138   return rlc.complete();                                                                                                             
139 }                                                                                                                                    
140 
141 bool ReferenceToRootClosure::do_universe_roots() {                                                                                   
142   assert(!complete(), "invariant");                                                                                                  
143   ReferenceLocateClosure rlc(_callback, OldObjectRoot::_universe, OldObjectRoot::_type_undetermined, NULL);                          
144   Universe::oops_do(&rlc);                                                                                                           
145   return rlc.complete();                                                                                                             
146 }                                                                                                                                    
147 
148 bool ReferenceToRootClosure::do_jni_handle_roots() {                                                                                 

109                                                    _info(),
110                                                    _complete(false) {
111     _info._high = NULL;
112     _info._low = NULL;
113     _info._context = NULL;
114     _info._system = OldObjectRoot::_system_undetermined;
115     _info._type = OldObjectRoot::_type_undetermined;
116 
117     assert_locked_or_safepoint(Threads_lock);
118     do_roots();
119   }
120 
121   bool complete() const {
122     return _complete;
123   }
124 };
125 
126 bool ReferenceToRootClosure::do_cldg_roots() {
127   assert(!complete(), "invariant");
128   ReferenceLocateClosure rlc(_callback, OldObjectRoot::_class_loader_data, OldObjectRoot::_type_undetermined, NULL);
129   CLDToOopClosure cldt_closure(&rlc, ClassLoaderData::_claim_strong);
130   ClassLoaderDataGraph::always_strong_cld_do(&cldt_closure);
131   return rlc.complete();
132 }
133 
134 bool ReferenceToRootClosure::do_object_synchronizer_roots() {
135   assert(!complete(), "invariant");
136   ReferenceLocateClosure rlc(_callback, OldObjectRoot::_object_synchronizer, OldObjectRoot::_type_undetermined, NULL);
137   ObjectSynchronizer::oops_do(&rlc);
138   return rlc.complete();
139 }
140 
141 bool ReferenceToRootClosure::do_universe_roots() {
142   assert(!complete(), "invariant");
143   ReferenceLocateClosure rlc(_callback, OldObjectRoot::_universe, OldObjectRoot::_type_undetermined, NULL);
144   Universe::oops_do(&rlc);
145   return rlc.complete();
146 }
147 
148 bool ReferenceToRootClosure::do_jni_handle_roots() {
< prev index next >