< prev index next >

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

Print this page
*** 131,10 ***
--- 131,11 ---
    ActiveArray* _active_array;
    size_t _block_count;
    volatile size_t _next_block;
    uint _estimated_thread_count;
    bool _concurrent;
+   volatile size_t _num_dead;
  
    NONCOPYABLE(BasicParState);
  
    struct IterationData;
  

*** 154,10 ***
--- 155,13 ---
    const OopStorage* storage() const { return _storage; }
  
    template<bool is_const, typename F> void iterate(F f);
  
    static uint default_estimated_thread_count(bool concurrent);
+ 
+   size_t num_dead() const { return _num_dead; }
+   void increment_dead_counter(size_t num_dead);
  };
  
  template<bool concurrent, bool is_const>
  class OopStorage::ParState {
    BasicParState _basic_state;

*** 173,10 ***
--- 177,13 ---
    {}
  
    const OopStorage* storage() const { return _basic_state.storage(); }
    template<typename F> void iterate(F f);
    template<typename Closure> void oops_do(Closure* cl);
+ 
+   size_t num_dead() const { return _basic_state.num_dead(); }
+   void increment_dead_counter(size_t num_dead) { _basic_state.increment_dead_counter(num_dead); }
  };
  
  template<>
  class OopStorage::ParState<false, false> {
    BasicParState _basic_state;

*** 191,8 ***
--- 198,11 ---
    template<typename F> void iterate(F f);
    template<typename Closure> void oops_do(Closure* cl);
    template<typename Closure> void weak_oops_do(Closure* cl);
    template<typename IsAliveClosure, typename Closure>
    void weak_oops_do(IsAliveClosure* is_alive, Closure* cl);
+ 
+   size_t num_dead() const { return _basic_state.num_dead(); }
+   void increment_dead_counter(size_t num_dead) { _basic_state.increment_dead_counter(num_dead); }
  };
  
  #endif // SHARE_GC_SHARED_OOPSTORAGEPARSTATE_HPP
< prev index next >