mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 07:14:30 +02:00
8248391: Unify handling of all OopStorage instances in weak root processing
OopStorage instance now owned by subsystems, and generalize dead entry notification Co-authored-by: Erik Osterlund <erik.osterlund@oracle.com> Co-authored-by: Stefan Karlsson <stefan.karlsson@oracle.com> Reviewed-by: coleenp, tschatzl
This commit is contained in:
parent
55af701cc3
commit
a8d6a05ce8
42 changed files with 822 additions and 574 deletions
|
@ -26,6 +26,7 @@
|
|||
#define SHARE_GC_SHARED_WEAKPROCESSOR_HPP
|
||||
|
||||
#include "gc/shared/oopStorageParState.hpp"
|
||||
#include "gc/shared/oopStorageSetParState.hpp"
|
||||
#include "gc/shared/workgroup.hpp"
|
||||
#include "memory/allocation.hpp"
|
||||
|
||||
|
@ -71,6 +72,8 @@ public:
|
|||
|
||||
private:
|
||||
class GangTask;
|
||||
|
||||
static void do_serial_parts(BoolObjectClosure* is_alive, OopClosure* keep_alive);
|
||||
};
|
||||
|
||||
class WeakProcessor::Task {
|
||||
|
@ -79,17 +82,18 @@ class WeakProcessor::Task {
|
|||
WeakProcessorPhaseTimes* _phase_times;
|
||||
uint _nworkers;
|
||||
SubTasksDone _serial_phases_done;
|
||||
StorageState* _storage_states;
|
||||
OopStorageSetWeakParState<false, false> _storage_states;
|
||||
|
||||
void initialize();
|
||||
|
||||
public:
|
||||
Task(uint nworkers); // No time tracking.
|
||||
Task(WeakProcessorPhaseTimes* phase_times, uint nworkers);
|
||||
~Task();
|
||||
|
||||
template<typename IsAlive, typename KeepAlive>
|
||||
void work(uint worker_id, IsAlive* is_alive, KeepAlive* keep_alive);
|
||||
|
||||
void report_num_dead();
|
||||
};
|
||||
|
||||
#endif // SHARE_GC_SHARED_WEAKPROCESSOR_HPP
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue