74
75 template<class T, UpdateRefsMode UPDATE_REFS, StringDedupMode STRING_DEDUP>
76 static inline void mark_through_ref(T* p, ShenandoahHeap* heap, ShenandoahObjToScanQueue* q, ShenandoahMarkingContext* const mark_context);
77
78 void mark_from_roots();
79 void finish_mark_from_roots(bool full_gc);
80
81 void mark_roots(ShenandoahPhaseTimings::Phase root_phase);
82 void update_roots(ShenandoahPhaseTimings::Phase root_phase);
83 void update_thread_roots(ShenandoahPhaseTimings::Phase root_phase);
84
85 // ---------- Weak references
86 //
87 private:
88 void weak_refs_work(bool full_gc);
89 void weak_refs_work_doit(bool full_gc);
90
91 public:
92 void preclean_weak_refs();
93
94 // ---------- Concurrent code cache
95 //
96 private:
97 ShenandoahSharedFlag _claimed_codecache;
98
99 public:
100 void concurrent_scan_code_roots(uint worker_id, ReferenceProcessor* rp);
101 bool claim_codecache();
102 void clear_claim_codecache();
103
104 // ---------- Helpers
105 // Used from closures, need to be public
106 //
107 public:
108 ShenandoahObjToScanQueue* get_queue(uint worker_id);
109 ShenandoahObjToScanQueueSet* task_queues() { return _task_queues; }
110
111 };
112
113 #endif // SHARE_GC_SHENANDOAH_SHENANDOAHCONCURRENTMARK_HPP
|
74
75 template<class T, UpdateRefsMode UPDATE_REFS, StringDedupMode STRING_DEDUP>
76 static inline void mark_through_ref(T* p, ShenandoahHeap* heap, ShenandoahObjToScanQueue* q, ShenandoahMarkingContext* const mark_context);
77
78 void mark_from_roots();
79 void finish_mark_from_roots(bool full_gc);
80
81 void mark_roots(ShenandoahPhaseTimings::Phase root_phase);
82 void update_roots(ShenandoahPhaseTimings::Phase root_phase);
83 void update_thread_roots(ShenandoahPhaseTimings::Phase root_phase);
84
85 // ---------- Weak references
86 //
87 private:
88 void weak_refs_work(bool full_gc);
89 void weak_refs_work_doit(bool full_gc);
90
91 public:
92 void preclean_weak_refs();
93
94 // ---------- Helpers
95 // Used from closures, need to be public
96 //
97 public:
98 ShenandoahObjToScanQueue* get_queue(uint worker_id);
99 ShenandoahObjToScanQueueSet* task_queues() { return _task_queues; }
100
101 };
102
103 #endif // SHARE_GC_SHENANDOAH_SHENANDOAHCONCURRENTMARK_HPP
|