< prev index next >

src/hotspot/share/gc/shared/referenceProcessor.hpp

Print this page
rev 47223 : [mq]: heapz8
rev 47224 : [mq]: heap9a


 233     _current_soft_ref_policy = always_clear ?
 234       _always_clear_soft_ref_policy : _default_soft_ref_policy;
 235     _current_soft_ref_policy->setup();   // snapshot the policy threshold
 236     return _current_soft_ref_policy;
 237   }
 238 
 239   // Process references with a certain reachability level.
 240   void process_discovered_reflist(DiscoveredList                refs_lists[],
 241                                   ReferencePolicy*              policy,
 242                                   bool                          clear_referent,
 243                                   BoolObjectClosure*            is_alive,
 244                                   OopClosure*                   keep_alive,
 245                                   VoidClosure*                  complete_gc,
 246                                   AbstractRefProcTaskExecutor*  task_executor,
 247                                   ReferenceProcessorPhaseTimes* phase_times);
 248 
 249   void process_phaseJNI(BoolObjectClosure* is_alive,
 250                         OopClosure*        keep_alive,
 251                         VoidClosure*       complete_gc);
 252 




 253   // Work methods used by the method process_discovered_reflist
 254   // Phase1: keep alive all those referents that are otherwise
 255   // dead but which must be kept alive by policy (and their closure).
 256   void process_phase1(DiscoveredList&     refs_list,
 257                       ReferencePolicy*    policy,
 258                       BoolObjectClosure*  is_alive,
 259                       OopClosure*         keep_alive,
 260                       VoidClosure*        complete_gc);
 261   // Phase2: remove all those references whose referents are
 262   // reachable.
 263   inline void process_phase2(DiscoveredList&    refs_list,
 264                              BoolObjectClosure* is_alive,
 265                              OopClosure*        keep_alive,
 266                              VoidClosure*       complete_gc) {
 267     if (discovery_is_atomic()) {
 268       // complete_gc is ignored in this case for this phase
 269       pp2_work(refs_list, is_alive, keep_alive);
 270     } else {
 271       assert(complete_gc != NULL, "Error");
 272       pp2_work_concurrent_discovery(refs_list, is_alive,




 233     _current_soft_ref_policy = always_clear ?
 234       _always_clear_soft_ref_policy : _default_soft_ref_policy;
 235     _current_soft_ref_policy->setup();   // snapshot the policy threshold
 236     return _current_soft_ref_policy;
 237   }
 238 
 239   // Process references with a certain reachability level.
 240   void process_discovered_reflist(DiscoveredList                refs_lists[],
 241                                   ReferencePolicy*              policy,
 242                                   bool                          clear_referent,
 243                                   BoolObjectClosure*            is_alive,
 244                                   OopClosure*                   keep_alive,
 245                                   VoidClosure*                  complete_gc,
 246                                   AbstractRefProcTaskExecutor*  task_executor,
 247                                   ReferenceProcessorPhaseTimes* phase_times);
 248 
 249   void process_phaseJNI(BoolObjectClosure* is_alive,
 250                         OopClosure*        keep_alive,
 251                         VoidClosure*       complete_gc);
 252 
 253   size_t process_phaseHeapSampling(BoolObjectClosure* is_alive,
 254                                    OopClosure*        keep_alive,
 255                                    VoidClosure*       complete_gc);
 256 
 257   // Work methods used by the method process_discovered_reflist
 258   // Phase1: keep alive all those referents that are otherwise
 259   // dead but which must be kept alive by policy (and their closure).
 260   void process_phase1(DiscoveredList&     refs_list,
 261                       ReferencePolicy*    policy,
 262                       BoolObjectClosure*  is_alive,
 263                       OopClosure*         keep_alive,
 264                       VoidClosure*        complete_gc);
 265   // Phase2: remove all those references whose referents are
 266   // reachable.
 267   inline void process_phase2(DiscoveredList&    refs_list,
 268                              BoolObjectClosure* is_alive,
 269                              OopClosure*        keep_alive,
 270                              VoidClosure*       complete_gc) {
 271     if (discovery_is_atomic()) {
 272       // complete_gc is ignored in this case for this phase
 273       pp2_work(refs_list, is_alive, keep_alive);
 274     } else {
 275       assert(complete_gc != NULL, "Error");
 276       pp2_work_concurrent_discovery(refs_list, is_alive,


< prev index next >