328
329 // This closure is used by the reference processor to filter out
330 // references to live referent.
331 DefNewGeneration::IsAliveClosure _is_alive_closure;
332
333 // GC tracer that should be used during collection.
334 ParNewTracer _gc_tracer;
335
336 static oop real_forwardee_slow(oop obj);
337 static void waste_some_time();
338
339 void handle_promotion_failed(GenCollectedHeap* gch, ParScanThreadStateSet& thread_state_set);
340
341 protected:
342
343 bool _survivor_overflow;
344
345 bool survivor_overflow() { return _survivor_overflow; }
346 void set_survivor_overflow(bool v) { _survivor_overflow = v; }
347
348 public:
349 ParNewGeneration(ReservedSpace rs, size_t initial_byte_size);
350
351 ~ParNewGeneration() {
352 for (uint i = 0; i < ParallelGCThreads; i++)
353 delete _task_queues->queue(i);
354
355 delete _task_queues;
356 }
357
358 virtual void ref_processor_init();
359 virtual Generation::Name kind() { return Generation::ParNew; }
360 virtual const char* name() const;
361 virtual const char* short_name() const { return "ParNew"; }
362
363 // override
364 virtual bool refs_discovery_is_mt() const {
365 return ParallelGCThreads > 1;
366 }
367
|
328
329 // This closure is used by the reference processor to filter out
330 // references to live referent.
331 DefNewGeneration::IsAliveClosure _is_alive_closure;
332
333 // GC tracer that should be used during collection.
334 ParNewTracer _gc_tracer;
335
336 static oop real_forwardee_slow(oop obj);
337 static void waste_some_time();
338
339 void handle_promotion_failed(GenCollectedHeap* gch, ParScanThreadStateSet& thread_state_set);
340
341 protected:
342
343 bool _survivor_overflow;
344
345 bool survivor_overflow() { return _survivor_overflow; }
346 void set_survivor_overflow(bool v) { _survivor_overflow = v; }
347
348 void restore_preserved_marks();
349
350 public:
351 ParNewGeneration(ReservedSpace rs, size_t initial_byte_size);
352
353 ~ParNewGeneration() {
354 for (uint i = 0; i < ParallelGCThreads; i++)
355 delete _task_queues->queue(i);
356
357 delete _task_queues;
358 }
359
360 virtual void ref_processor_init();
361 virtual Generation::Name kind() { return Generation::ParNew; }
362 virtual const char* name() const;
363 virtual const char* short_name() const { return "ParNew"; }
364
365 // override
366 virtual bool refs_discovery_is_mt() const {
367 return ParallelGCThreads > 1;
368 }
369
|