--- old/src/hotspot/share/memory/heapInspection.hpp 2020-04-22 10:57:31.855084346 +0200 +++ new/src/hotspot/share/memory/heapInspection.hpp 2020-04-22 10:57:31.671080563 +0200 @@ -31,6 +31,9 @@ #include "oops/annotations.hpp" #include "utilities/macros.hpp" #include "gc/shared/workgroup.hpp" + +class ParallelObjectIterator; + #if INCLUDE_SERVICES @@ -222,36 +225,30 @@ class ParHeapInspectTask : public AbstractGangTask { private: - CollectedHeap* _heap; + ParallelObjectIterator* _poi; KlassInfoTable* _shared_cit; BoolObjectClosure* _filter; - size_t* _shared_missed_count; + size_t _shared_missed_count; bool _success; Mutex _mutex; - size_t _par_thread_num; public: - ParHeapInspectTask(CollectedHeap* heap, KlassInfoTable* shared_cit, - BoolObjectClosure* filter, size_t* shared_missed_count, - size_t parallel_thread_num) : + ParHeapInspectTask(ParallelObjectIterator* poi, + KlassInfoTable* shared_cit, + BoolObjectClosure* filter) : AbstractGangTask("Iterating heap"), - _heap(heap), + _poi(poi), _shared_cit(shared_cit), _filter(filter), - _shared_missed_count(shared_missed_count), + _shared_missed_count(0), _success(true), - _mutex(Mutex::leaf, "Parallel heap iteration data merge lock"), - _par_thread_num(parallel_thread_num) { } + _mutex(Mutex::leaf, "Parallel heap iteration data merge lock") {} - bool is_success() { - return _success; + uint missed_count() const { + return _shared_missed_count; } - CollectedHeap* getHeap() { - return _heap; - } virtual void work(uint worker_id); - virtual void do_object_iterate_parallel(ObjectClosure* closure, uint worker_id) = 0; };