660 } 661 662 // Track memory usage and detect low memory after GC finishes 663 MemoryService::track_memory_usage(); 664 665 gc_epilogue(complete); 666 667 if (must_restore_marks_for_biased_locking) { 668 BiasedLocking::restore_marks(); 669 } 670 } 671 672 AdaptiveSizePolicy* sp = gen_policy()->size_policy(); 673 AdaptiveSizePolicyOutput(sp, total_collections()); 674 675 print_heap_after_gc(); 676 677 #ifdef TRACESPINNING 678 ParallelTaskTerminator::print_termination_counts(); 679 #endif 680 681 if (ExitAfterGCNum > 0 && total_collections() == ExitAfterGCNum) { 682 tty->print_cr("Stopping after GC #%d", ExitAfterGCNum); 683 vm_exit(-1); 684 } 685 } 686 687 HeapWord* GenCollectedHeap::satisfy_failed_allocation(size_t size, bool is_tlab) { 688 return collector_policy()->satisfy_failed_allocation(size, is_tlab); 689 } 690 691 void GenCollectedHeap::set_par_threads(uint t) { 692 SharedHeap::set_par_threads(t); 693 _gen_process_strong_tasks->set_n_threads(t); 694 } 695 696 void GenCollectedHeap:: 697 gen_process_strong_roots(int level, 698 bool younger_gens_as_roots, 699 bool activate_scope, 700 bool collecting_perm_gen, 701 SharedHeap::ScanningOption so, 702 OopsInGenClosure* not_older_gens, 703 bool do_code_roots, 704 OopsInGenClosure* older_gens) { | 660 } 661 662 // Track memory usage and detect low memory after GC finishes 663 MemoryService::track_memory_usage(); 664 665 gc_epilogue(complete); 666 667 if (must_restore_marks_for_biased_locking) { 668 BiasedLocking::restore_marks(); 669 } 670 } 671 672 AdaptiveSizePolicy* sp = gen_policy()->size_policy(); 673 AdaptiveSizePolicyOutput(sp, total_collections()); 674 675 print_heap_after_gc(); 676 677 #ifdef TRACESPINNING 678 ParallelTaskTerminator::print_termination_counts(); 679 #endif 680 } 681 682 HeapWord* GenCollectedHeap::satisfy_failed_allocation(size_t size, bool is_tlab) { 683 return collector_policy()->satisfy_failed_allocation(size, is_tlab); 684 } 685 686 void GenCollectedHeap::set_par_threads(uint t) { 687 SharedHeap::set_par_threads(t); 688 _gen_process_strong_tasks->set_n_threads(t); 689 } 690 691 void GenCollectedHeap:: 692 gen_process_strong_roots(int level, 693 bool younger_gens_as_roots, 694 bool activate_scope, 695 bool collecting_perm_gen, 696 SharedHeap::ScanningOption so, 697 OopsInGenClosure* not_older_gens, 698 bool do_code_roots, 699 OopsInGenClosure* older_gens) { |