comparison src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp @ 2037:b03260081e9b

7006113: G1: Initialize ReferenceProcessor::_is_alive_non_header field Summary: Initialize the _is_alive_non_header field of G1's reference processor with an instance of the G1CMIsAliveClosure. This will stop adding reference objects with live referents to the discovered reference lists unnecessarily. Reviewed-by: tonyp, ysr, jwilhelm, brutisso
author johnc
date Fri, 17 Dec 2010 11:26:53 -0800
parents fb712ff22571
children 2250ee17e258
comparison
equal deleted inserted replaced
2031:36eef023306f 2037:b03260081e9b
847 #ifndef PRODUCT 847 #ifndef PRODUCT
848 // Useful for debugging. 848 // Useful for debugging.
849 void print_gc_alloc_regions(); 849 void print_gc_alloc_regions();
850 #endif // !PRODUCT 850 #endif // !PRODUCT
851 851
852 // Instance of the concurrent mark is_alive closure for embedding
853 // into the reference processor as the is_alive_non_header. This
854 // prevents unnecessary additions to the discovered lists during
855 // concurrent discovery.
856 G1CMIsAliveClosure _is_alive_closure;
857
852 // ("Weak") Reference processing support 858 // ("Weak") Reference processing support
853 ReferenceProcessor* _ref_processor; 859 ReferenceProcessor* _ref_processor;
854 860
855 enum G1H_process_strong_roots_tasks { 861 enum G1H_process_strong_roots_tasks {
856 G1H_PS_mark_stack_oops_do, 862 G1H_PS_mark_stack_oops_do,
891 // Initialize the G1CollectedHeap to have the initial and 897 // Initialize the G1CollectedHeap to have the initial and
892 // maximum sizes, permanent generation, and remembered and barrier sets 898 // maximum sizes, permanent generation, and remembered and barrier sets
893 // specified by the policy object. 899 // specified by the policy object.
894 jint initialize(); 900 jint initialize();
895 901
896 void ref_processing_init(); 902 virtual void ref_processing_init();
897 903
898 void set_par_threads(int t) { 904 void set_par_threads(int t) {
899 SharedHeap::set_par_threads(t); 905 SharedHeap::set_par_threads(t);
900 _process_strong_tasks->set_n_threads(t); 906 _process_strong_tasks->set_n_threads(t);
901 } 907 }