168 // its (strong) reachability and the second is a closure that |
168 // its (strong) reachability and the second is a closure that |
169 // may be used to incrementalize or abort the precleaning process. |
169 // may be used to incrementalize or abort the precleaning process. |
170 // The caller is responsible for taking care of potential |
170 // The caller is responsible for taking care of potential |
171 // interference with concurrent operations on these lists |
171 // interference with concurrent operations on these lists |
172 // (or predicates involved) by other threads. Currently |
172 // (or predicates involved) by other threads. Currently |
173 // only used by the CMS collector. |
173 // only used by the CMS collector. should_unload_classes is |
|
174 // used to aid assertion checking when classes are collected. |
174 void preclean_discovered_references(BoolObjectClosure* is_alive, |
175 void preclean_discovered_references(BoolObjectClosure* is_alive, |
175 OopClosure* keep_alive, |
176 OopClosure* keep_alive, |
176 VoidClosure* complete_gc, |
177 VoidClosure* complete_gc, |
177 YieldClosure* yield); |
178 YieldClosure* yield, |
|
179 bool should_unload_classes); |
178 |
180 |
179 // Delete entries in the discovered lists that have |
181 // Delete entries in the discovered lists that have |
180 // either a null referent or are not active. Such |
182 // either a null referent or are not active. Such |
181 // Reference objects can result from the clearing |
183 // Reference objects can result from the clearing |
182 // or enqueueing of Reference objects concurrent |
184 // or enqueueing of Reference objects concurrent |