233
234 class ParNewGenTask: public AbstractGangTask {
235 private:
236 ParNewGeneration* _gen;
237 Generation* _old_gen;
238 HeapWord* _young_old_boundary;
239 class ParScanThreadStateSet* _state_set;
240
241 public:
242 ParNewGenTask(ParNewGeneration* gen,
243 Generation* old_gen,
244 HeapWord* young_old_boundary,
245 ParScanThreadStateSet* state_set);
246
247 HeapWord* young_old_boundary() { return _young_old_boundary; }
248
249 void work(uint worker_id);
250
251 // Reset the terminator in ParScanThreadStateSet for
252 // "active_workers" threads.
253 virtual void set_for_termination(int active_workers);
254 };
255
256 class KeepAliveClosure: public DefNewGeneration::KeepAliveClosure {
257 protected:
258 template <class T> void do_oop_work(T* p);
259 public:
260 KeepAliveClosure(ScanWeakRefClosure* cl);
261 virtual void do_oop(oop* p);
262 virtual void do_oop(narrowOop* p);
263 };
264
265 class EvacuateFollowersClosureGeneral: public VoidClosure {
266 private:
267 GenCollectedHeap* _gch;
268 int _level;
269 OopsInGenClosure* _scan_cur_or_nonheap;
270 OopsInGenClosure* _scan_older;
271 public:
272 EvacuateFollowersClosureGeneral(GenCollectedHeap* gch, int level,
273 OopsInGenClosure* cur,
|
233
234 class ParNewGenTask: public AbstractGangTask {
235 private:
236 ParNewGeneration* _gen;
237 Generation* _old_gen;
238 HeapWord* _young_old_boundary;
239 class ParScanThreadStateSet* _state_set;
240
241 public:
242 ParNewGenTask(ParNewGeneration* gen,
243 Generation* old_gen,
244 HeapWord* young_old_boundary,
245 ParScanThreadStateSet* state_set);
246
247 HeapWord* young_old_boundary() { return _young_old_boundary; }
248
249 void work(uint worker_id);
250
251 // Reset the terminator in ParScanThreadStateSet for
252 // "active_workers" threads.
253 virtual void set_for_termination(uint active_workers);
254 };
255
256 class KeepAliveClosure: public DefNewGeneration::KeepAliveClosure {
257 protected:
258 template <class T> void do_oop_work(T* p);
259 public:
260 KeepAliveClosure(ScanWeakRefClosure* cl);
261 virtual void do_oop(oop* p);
262 virtual void do_oop(narrowOop* p);
263 };
264
265 class EvacuateFollowersClosureGeneral: public VoidClosure {
266 private:
267 GenCollectedHeap* _gch;
268 int _level;
269 OopsInGenClosure* _scan_cur_or_nonheap;
270 OopsInGenClosure* _scan_older;
271 public:
272 EvacuateFollowersClosureGeneral(GenCollectedHeap* gch, int level,
273 OopsInGenClosure* cur,
|