< prev index next > src/hotspot/share/gc/shared/oopStorageParState.hpp
Print this page
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;
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;
{}
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;
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 >