equal
deleted
inserted
replaced
54 ShenandoahSerialRoot _universe_root; |
54 ShenandoahSerialRoot _universe_root; |
55 ShenandoahSerialRoot _object_synchronizer_root; |
55 ShenandoahSerialRoot _object_synchronizer_root; |
56 ShenandoahSerialRoot _management_root; |
56 ShenandoahSerialRoot _management_root; |
57 ShenandoahSerialRoot _system_dictionary_root; |
57 ShenandoahSerialRoot _system_dictionary_root; |
58 ShenandoahSerialRoot _jvmti_root; |
58 ShenandoahSerialRoot _jvmti_root; |
59 ShenandoahSerialRoot _jni_handle_root; |
|
60 public: |
59 public: |
61 ShenandoahSerialRoots(); |
60 ShenandoahSerialRoots(); |
62 void oops_do(OopClosure* cl, uint worker_id); |
61 void oops_do(OopClosure* cl, uint worker_id); |
63 }; |
62 }; |
64 |
63 |
|
64 class ShenandoahJNIHandleRoots : public ShenandoahSerialRoot { |
|
65 public: |
|
66 ShenandoahJNIHandleRoots(); |
|
67 }; |
|
68 |
65 class ShenandoahThreadRoots { |
69 class ShenandoahThreadRoots { |
66 private: |
70 private: |
67 const bool _is_par; |
71 const bool _is_par; |
68 public: |
72 public: |
69 ShenandoahThreadRoots(bool is_par); |
73 ShenandoahThreadRoots(bool is_par); |
124 |
128 |
125 template <typename ITR> |
129 template <typename ITR> |
126 class ShenandoahRootScanner : public ShenandoahRootProcessor { |
130 class ShenandoahRootScanner : public ShenandoahRootProcessor { |
127 private: |
131 private: |
128 ShenandoahSerialRoots _serial_roots; |
132 ShenandoahSerialRoots _serial_roots; |
|
133 ShenandoahJNIHandleRoots _jni_roots; |
129 ShenandoahClassLoaderDataRoots _cld_roots; |
134 ShenandoahClassLoaderDataRoots _cld_roots; |
130 ShenandoahThreadRoots _thread_roots; |
135 ShenandoahThreadRoots _thread_roots; |
131 ShenandoahCodeCacheRoots<ITR> _code_roots; |
136 ShenandoahCodeCacheRoots<ITR> _code_roots; |
132 public: |
137 public: |
133 ShenandoahRootScanner(uint n_workers, ShenandoahPhaseTimings::Phase phase); |
138 ShenandoahRootScanner(uint n_workers, ShenandoahPhaseTimings::Phase phase); |
150 |
155 |
151 // Evacuate all roots at a safepoint |
156 // Evacuate all roots at a safepoint |
152 class ShenandoahRootEvacuator : public ShenandoahRootProcessor { |
157 class ShenandoahRootEvacuator : public ShenandoahRootProcessor { |
153 private: |
158 private: |
154 ShenandoahSerialRoots _serial_roots; |
159 ShenandoahSerialRoots _serial_roots; |
|
160 ShenandoahJNIHandleRoots _jni_roots; |
155 ShenandoahClassLoaderDataRoots _cld_roots; |
161 ShenandoahClassLoaderDataRoots _cld_roots; |
156 ShenandoahThreadRoots _thread_roots; |
162 ShenandoahThreadRoots _thread_roots; |
157 ShenandoahWeakRoots _weak_roots; |
163 ShenandoahWeakRoots _weak_roots; |
158 ShenandoahStringDedupRoots _dedup_roots; |
164 ShenandoahStringDedupRoots _dedup_roots; |
159 ShenandoahCodeCacheRoots<ShenandoahCsetCodeRootsIterator> _code_roots; |
165 ShenandoahCodeCacheRoots<ShenandoahCsetCodeRootsIterator> _code_roots; |
166 |
172 |
167 // Update all roots at a safepoint |
173 // Update all roots at a safepoint |
168 class ShenandoahRootUpdater : public ShenandoahRootProcessor { |
174 class ShenandoahRootUpdater : public ShenandoahRootProcessor { |
169 private: |
175 private: |
170 ShenandoahSerialRoots _serial_roots; |
176 ShenandoahSerialRoots _serial_roots; |
|
177 ShenandoahJNIHandleRoots _jni_roots; |
171 ShenandoahClassLoaderDataRoots _cld_roots; |
178 ShenandoahClassLoaderDataRoots _cld_roots; |
172 ShenandoahThreadRoots _thread_roots; |
179 ShenandoahThreadRoots _thread_roots; |
173 ShenandoahWeakRoots _weak_roots; |
180 ShenandoahWeakRoots _weak_roots; |
174 ShenandoahStringDedupRoots _dedup_roots; |
181 ShenandoahStringDedupRoots _dedup_roots; |
175 ShenandoahCodeCacheRoots<ShenandoahCsetCodeRootsIterator> _code_roots; |
182 ShenandoahCodeCacheRoots<ShenandoahCsetCodeRootsIterator> _code_roots; |
184 |
191 |
185 // Adjuster all roots at a safepoint during full gc |
192 // Adjuster all roots at a safepoint during full gc |
186 class ShenandoahRootAdjuster : public ShenandoahRootProcessor { |
193 class ShenandoahRootAdjuster : public ShenandoahRootProcessor { |
187 private: |
194 private: |
188 ShenandoahSerialRoots _serial_roots; |
195 ShenandoahSerialRoots _serial_roots; |
|
196 ShenandoahJNIHandleRoots _jni_roots; |
189 ShenandoahClassLoaderDataRoots _cld_roots; |
197 ShenandoahClassLoaderDataRoots _cld_roots; |
190 ShenandoahThreadRoots _thread_roots; |
198 ShenandoahThreadRoots _thread_roots; |
191 ShenandoahWeakRoots _weak_roots; |
199 ShenandoahWeakRoots _weak_roots; |
192 ShenandoahStringDedupRoots _dedup_roots; |
200 ShenandoahStringDedupRoots _dedup_roots; |
193 ShenandoahCodeCacheRoots<ShenandoahAllCodeRootsIterator> _code_roots; |
201 ShenandoahCodeCacheRoots<ShenandoahAllCodeRootsIterator> _code_roots; |