src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.inline.hpp
changeset 57837 2227a0cfd6b3
parent 57732 23e13076e102
child 58679 9c3209ff7550
child 59296 9186be5c78ba
equal deleted inserted replaced
57836:e70dec4229e9 57837:2227a0cfd6b3
    69   _itr.weak_oops_do(is_alive, keep_alive);
    69   _itr.weak_oops_do(is_alive, keep_alive);
    70 }
    70 }
    71 
    71 
    72 template <bool CONCURRENT>
    72 template <bool CONCURRENT>
    73 ShenandoahWeakRoots<CONCURRENT>::ShenandoahWeakRoots() :
    73 ShenandoahWeakRoots<CONCURRENT>::ShenandoahWeakRoots() :
    74   _jni_roots(JNIHandles::weak_global_handles(), ShenandoahPhaseTimings::JNIWeakRoots),
    74   _jni_roots(OopStorageSet::jni_weak(), ShenandoahPhaseTimings::JNIWeakRoots),
    75   _string_table_roots(StringTable::weak_storage(), ShenandoahPhaseTimings::StringTableRoots),
    75   _string_table_roots(OopStorageSet::string_table_weak(), ShenandoahPhaseTimings::StringTableRoots),
    76   _resolved_method_table_roots(ResolvedMethodTable::weak_storage(), ShenandoahPhaseTimings::ResolvedMethodTableRoots),
    76   _resolved_method_table_roots(OopStorageSet::resolved_method_table_weak(), ShenandoahPhaseTimings::ResolvedMethodTableRoots),
    77   _vm_roots(SystemDictionary::vm_weak_oop_storage(), ShenandoahPhaseTimings::VMWeakRoots) {
    77   _vm_roots(OopStorageSet::vm_weak(), ShenandoahPhaseTimings::VMWeakRoots) {
    78 }
    78 }
    79 
    79 
    80 template <bool CONCURRENT>
    80 template <bool CONCURRENT>
    81 template <typename Closure>
    81 template <typename Closure>
    82 void ShenandoahWeakRoots<CONCURRENT>::oops_do(Closure* cl, uint worker_id) {
    82 void ShenandoahWeakRoots<CONCURRENT>::oops_do(Closure* cl, uint worker_id) {
    85   _resolved_method_table_roots.oops_do(cl, worker_id);
    85   _resolved_method_table_roots.oops_do(cl, worker_id);
    86   _vm_roots.oops_do(cl, worker_id);
    86   _vm_roots.oops_do(cl, worker_id);
    87 }
    87 }
    88 
    88 
    89 inline ShenandoahWeakRoots<false /* concurrent */>::ShenandoahWeakRoots() :
    89 inline ShenandoahWeakRoots<false /* concurrent */>::ShenandoahWeakRoots() :
    90   _jni_roots(JNIHandles::weak_global_handles(), ShenandoahPhaseTimings::JNIWeakRoots),
    90   _jni_roots(OopStorageSet::jni_weak(), ShenandoahPhaseTimings::JNIWeakRoots),
    91   _string_table_roots(StringTable::weak_storage(), ShenandoahPhaseTimings::StringTableRoots),
    91   _string_table_roots(OopStorageSet::string_table_weak(), ShenandoahPhaseTimings::StringTableRoots),
    92   _resolved_method_table_roots(ResolvedMethodTable::weak_storage(), ShenandoahPhaseTimings::ResolvedMethodTableRoots),
    92   _resolved_method_table_roots(OopStorageSet::resolved_method_table_weak(), ShenandoahPhaseTimings::ResolvedMethodTableRoots),
    93   _vm_roots(SystemDictionary::vm_weak_oop_storage(), ShenandoahPhaseTimings::VMWeakRoots) {
    93   _vm_roots(OopStorageSet::vm_weak(), ShenandoahPhaseTimings::VMWeakRoots) {
    94 }
    94 }
    95 
    95 
    96 template <typename IsAliveClosure, typename KeepAliveClosure>
    96 template <typename IsAliveClosure, typename KeepAliveClosure>
    97 void ShenandoahWeakRoots<false /* concurrent*/>::weak_oops_do(IsAliveClosure* is_alive, KeepAliveClosure* keep_alive, uint worker_id) {
    97 void ShenandoahWeakRoots<false /* concurrent*/>::weak_oops_do(IsAliveClosure* is_alive, KeepAliveClosure* keep_alive, uint worker_id) {
    98   _jni_roots.weak_oops_do(is_alive, keep_alive, worker_id);
    98   _jni_roots.weak_oops_do(is_alive, keep_alive, worker_id);
   107   weak_oops_do<AlwaysTrueClosure, Closure>(&always_true, cl, worker_id);
   107   weak_oops_do<AlwaysTrueClosure, Closure>(&always_true, cl, worker_id);
   108 }
   108 }
   109 
   109 
   110 template <bool CONCURRENT>
   110 template <bool CONCURRENT>
   111 ShenandoahVMRoots<CONCURRENT>::ShenandoahVMRoots() :
   111 ShenandoahVMRoots<CONCURRENT>::ShenandoahVMRoots() :
   112   _jni_handle_roots(JNIHandles::global_handles(), ShenandoahPhaseTimings::JNIRoots),
   112   _jni_handle_roots(OopStorageSet::jni_global(), ShenandoahPhaseTimings::JNIRoots),
   113   _vm_global_roots(SystemDictionary::vm_global_oop_storage(), ShenandoahPhaseTimings::VMGlobalRoots) {
   113   _vm_global_roots(OopStorageSet::vm_global(), ShenandoahPhaseTimings::VMGlobalRoots) {
   114 }
   114 }
   115 
   115 
   116 template <bool CONCURRENT>
   116 template <bool CONCURRENT>
   117 template <typename T>
   117 template <typename T>
   118 void ShenandoahVMRoots<CONCURRENT>::oops_do(T* cl, uint worker_id) {
   118 void ShenandoahVMRoots<CONCURRENT>::oops_do(T* cl, uint worker_id) {