src/hotspot/share/gc/shared/oopStorage.hpp
changeset 49711 4a7addb5762c
parent 49392 2956d0ece7a9
child 49977 9f758f0bb058
equal deleted inserted replaced
49710:f67333fc42bd 49711:4a7addb5762c
   144   template<typename Closure> inline void weak_oops_do(Closure* closure);
   144   template<typename Closure> inline void weak_oops_do(Closure* closure);
   145 
   145 
   146   template<typename IsAliveClosure, typename Closure>
   146   template<typename IsAliveClosure, typename Closure>
   147   inline void weak_oops_do(IsAliveClosure* is_alive, Closure* closure);
   147   inline void weak_oops_do(IsAliveClosure* is_alive, Closure* closure);
   148 
   148 
   149 #if INCLUDE_ALL_GCS
       
   150   // Parallel iteration is for the exclusive use of the GC.
   149   // Parallel iteration is for the exclusive use of the GC.
   151   // Other clients must use serial iteration.
   150   // Other clients must use serial iteration.
   152   template<bool concurrent, bool is_const> class ParState;
   151   template<bool concurrent, bool is_const> class ParState;
   153 #endif // INCLUDE_ALL_GCS
       
   154 
   152 
   155   // Block cleanup functions are for the exclusive use of the GC.
   153   // Block cleanup functions are for the exclusive use of the GC.
   156   // Both stop deleting if there is an in-progress concurrent iteration.
   154   // Both stop deleting if there is an in-progress concurrent iteration.
   157   // Concurrent deletion locks both the allocate_mutex and the active_mutex.
   155   // Concurrent deletion locks both the allocate_mutex and the active_mutex.
   158   void delete_empty_blocks_safepoint();
   156   void delete_empty_blocks_safepoint();
   242   bool reduce_deferred_updates();
   240   bool reduce_deferred_updates();
   243 
   241 
   244   template<typename F, typename Storage>
   242   template<typename F, typename Storage>
   245   static bool iterate_impl(F f, Storage* storage);
   243   static bool iterate_impl(F f, Storage* storage);
   246 
   244 
   247 #if INCLUDE_ALL_GCS
       
   248   // Implementation support for parallel iteration
   245   // Implementation support for parallel iteration
   249   class BasicParState;
   246   class BasicParState;
   250 #endif // INCLUDE_ALL_GCS
       
   251 
   247 
   252   // Wrapper for OopClosure-style function, so it can be used with
   248   // Wrapper for OopClosure-style function, so it can be used with
   253   // iterate.  Assume p is of type oop*.  Then cl->do_oop(p) must be a
   249   // iterate.  Assume p is of type oop*.  Then cl->do_oop(p) must be a
   254   // valid expression whose value may be ignored.
   250   // valid expression whose value may be ignored.
   255   template<typename Closure> class OopFn;
   251   template<typename Closure> class OopFn;