147 void weak_oops_do(BoolObjectClosure* is_alive, OopClosure* cl);
148 void oops_do(OopClosure* cl);
149 };
150
151 class ZConcurrentWeakRootsIterator {
152 private:
153 ZConcurrentOopStorageIterator _vm_weak_handles_iter;
154 ZConcurrentOopStorageIterator _jni_weak_handles_iter;
155 ZConcurrentOopStorageIterator _string_table_iter;
156
157 void do_vm_weak_handles(OopClosure* cl);
158 void do_jni_weak_handles(OopClosure* cl);
159 void do_string_table(OopClosure* cl);
160
161 ZParallelOopsDo<ZConcurrentWeakRootsIterator, &ZConcurrentWeakRootsIterator::do_vm_weak_handles> _vm_weak_handles;
162 ZParallelOopsDo<ZConcurrentWeakRootsIterator, &ZConcurrentWeakRootsIterator::do_jni_weak_handles> _jni_weak_handles;
163 ZParallelOopsDo<ZConcurrentWeakRootsIterator, &ZConcurrentWeakRootsIterator::do_string_table> _string_table;
164
165 public:
166 ZConcurrentWeakRootsIterator();
167
168 void oops_do(OopClosure* cl);
169 };
170
171 class ZThreadRootsIterator {
172 private:
173 void do_threads(OopClosure* cl);
174
175 ZParallelOopsDo<ZThreadRootsIterator, &ZThreadRootsIterator::do_threads> _threads;
176
177 public:
178 ZThreadRootsIterator();
179 ~ZThreadRootsIterator();
180
181 void oops_do(OopClosure* cl);
182 };
183
184 #endif // SHARE_GC_Z_ZROOTSITERATOR_HPP
|
147 void weak_oops_do(BoolObjectClosure* is_alive, OopClosure* cl);
148 void oops_do(OopClosure* cl);
149 };
150
151 class ZConcurrentWeakRootsIterator {
152 private:
153 ZConcurrentOopStorageIterator _vm_weak_handles_iter;
154 ZConcurrentOopStorageIterator _jni_weak_handles_iter;
155 ZConcurrentOopStorageIterator _string_table_iter;
156
157 void do_vm_weak_handles(OopClosure* cl);
158 void do_jni_weak_handles(OopClosure* cl);
159 void do_string_table(OopClosure* cl);
160
161 ZParallelOopsDo<ZConcurrentWeakRootsIterator, &ZConcurrentWeakRootsIterator::do_vm_weak_handles> _vm_weak_handles;
162 ZParallelOopsDo<ZConcurrentWeakRootsIterator, &ZConcurrentWeakRootsIterator::do_jni_weak_handles> _jni_weak_handles;
163 ZParallelOopsDo<ZConcurrentWeakRootsIterator, &ZConcurrentWeakRootsIterator::do_string_table> _string_table;
164
165 public:
166 ZConcurrentWeakRootsIterator();
167 ~ZConcurrentWeakRootsIterator();
168
169 void oops_do(OopClosure* cl);
170 };
171
172 class ZThreadRootsIterator {
173 private:
174 void do_threads(OopClosure* cl);
175
176 ZParallelOopsDo<ZThreadRootsIterator, &ZThreadRootsIterator::do_threads> _threads;
177
178 public:
179 ZThreadRootsIterator();
180 ~ZThreadRootsIterator();
181
182 void oops_do(OopClosure* cl);
183 };
184
185 #endif // SHARE_GC_Z_ZROOTSITERATOR_HPP
|