363
364 double* _accum_task_vtime; // Accumulated task vtime
365
366 WorkGang* _concurrent_workers;
367 uint _num_concurrent_workers; // The number of marking worker threads we're using
368 uint _max_concurrent_workers; // Maximum number of marking worker threads
369
370 void verify_during_pause(G1HeapVerifier::G1VerifyType type, VerifyOption vo, const char* caller);
371
372 void finalize_marking();
373
374 void weak_refs_work_parallel_part(BoolObjectClosure* is_alive, bool purged_classes);
375 void weak_refs_work(bool clear_all_soft_refs);
376
377 void report_object_count(bool mark_completed);
378
379 void swap_mark_bitmaps();
380
381 void reclaim_empty_regions();
382
383 // After reclaiming empty regions, update heap sizes.
384 void compute_new_sizes();
385
386 // Clear statistics gathered during the concurrent cycle for the given region after
387 // it has been reclaimed.
388 void clear_statistics(HeapRegion* r);
389
390 // Resets the global marking data structures, as well as the
391 // task local ones; should be called during initial mark.
392 void reset();
393
394 // Resets all the marking data structures. Called when we have to restart
395 // marking or when marking completes (via set_non_marking_state below).
396 void reset_marking_for_restart();
397
398 // We do this after we're done with marking so that the marking data
399 // structures are initialized to a sensible and predictable state.
400 void reset_at_marking_complete();
401
402 // Called to indicate how many threads are currently active.
403 void set_concurrency(uint active_tasks);
404
|
363
364 double* _accum_task_vtime; // Accumulated task vtime
365
366 WorkGang* _concurrent_workers;
367 uint _num_concurrent_workers; // The number of marking worker threads we're using
368 uint _max_concurrent_workers; // Maximum number of marking worker threads
369
370 void verify_during_pause(G1HeapVerifier::G1VerifyType type, VerifyOption vo, const char* caller);
371
372 void finalize_marking();
373
374 void weak_refs_work_parallel_part(BoolObjectClosure* is_alive, bool purged_classes);
375 void weak_refs_work(bool clear_all_soft_refs);
376
377 void report_object_count(bool mark_completed);
378
379 void swap_mark_bitmaps();
380
381 void reclaim_empty_regions();
382
383 public:
384 // After reclaiming empty regions, update heap sizes.
385 void compute_new_sizes();
386 private:
387
388 // Clear statistics gathered during the concurrent cycle for the given region after
389 // it has been reclaimed.
390 void clear_statistics(HeapRegion* r);
391
392 // Resets the global marking data structures, as well as the
393 // task local ones; should be called during initial mark.
394 void reset();
395
396 // Resets all the marking data structures. Called when we have to restart
397 // marking or when marking completes (via set_non_marking_state below).
398 void reset_marking_for_restart();
399
400 // We do this after we're done with marking so that the marking data
401 // structures are initialized to a sensible and predictable state.
402 void reset_at_marking_complete();
403
404 // Called to indicate how many threads are currently active.
405 void set_concurrency(uint active_tasks);
406
|