71 // Iteration through CLDG inside a safepoint; GC support
72 static void cld_do(CLDClosure* cl);
73 static void cld_unloading_do(CLDClosure* cl);
74 static void roots_cld_do(CLDClosure* strong, CLDClosure* weak);
75 static void always_strong_cld_do(CLDClosure* cl);
76 // klass do
77 // Walking classes through the ClassLoaderDataGraph include array classes. It also includes
78 // classes that are allocated but not loaded, classes that have errors, and scratch classes
79 // for redefinition. These classes are removed during the next class unloading.
80 // Walking the ClassLoaderDataGraph also includes unsafe anonymous classes.
81 static void classes_do(KlassClosure* klass_closure);
82 static void classes_do(void f(Klass* const));
83 static void methods_do(void f(Method*));
84 static void modules_do(void f(ModuleEntry*));
85 static void modules_unloading_do(void f(ModuleEntry*));
86 static void packages_do(void f(PackageEntry*));
87 static void packages_unloading_do(void f(PackageEntry*));
88 static void loaded_classes_do(KlassClosure* klass_closure);
89 static void unlocked_loaded_classes_do(KlassClosure* klass_closure);
90 static void classes_unloading_do(void f(Klass* const));
91 static bool do_unloading(bool do_cleaning);
92
93 // Expose state to avoid logging overhead in safepoint cleanup tasks.
94 static inline bool should_clean_metaspaces_and_reset();
95 static void set_should_clean_deallocate_lists() { _should_clean_deallocate_lists = true; }
96 static void clean_deallocate_lists(bool purge_previous_versions);
97 static void walk_metadata_and_clean_metaspaces();
98
99 // dictionary do
100 // Iterate over all klasses in dictionary, but
101 // just the classes from defining class loaders.
102 static void dictionary_classes_do(void f(InstanceKlass*));
103 // Added for initialize_itable_for_klass to handle exceptions.
104 static void dictionary_classes_do(void f(InstanceKlass*, TRAPS), TRAPS);
105
106 // VM_CounterDecay iteration support
107 static InstanceKlass* try_get_next_class();
108 static void adjust_saved_class(ClassLoaderData* cld);
109 static void adjust_saved_class(Klass* klass);
110
111 static void verify_dictionary();
|
71 // Iteration through CLDG inside a safepoint; GC support
72 static void cld_do(CLDClosure* cl);
73 static void cld_unloading_do(CLDClosure* cl);
74 static void roots_cld_do(CLDClosure* strong, CLDClosure* weak);
75 static void always_strong_cld_do(CLDClosure* cl);
76 // klass do
77 // Walking classes through the ClassLoaderDataGraph include array classes. It also includes
78 // classes that are allocated but not loaded, classes that have errors, and scratch classes
79 // for redefinition. These classes are removed during the next class unloading.
80 // Walking the ClassLoaderDataGraph also includes unsafe anonymous classes.
81 static void classes_do(KlassClosure* klass_closure);
82 static void classes_do(void f(Klass* const));
83 static void methods_do(void f(Method*));
84 static void modules_do(void f(ModuleEntry*));
85 static void modules_unloading_do(void f(ModuleEntry*));
86 static void packages_do(void f(PackageEntry*));
87 static void packages_unloading_do(void f(PackageEntry*));
88 static void loaded_classes_do(KlassClosure* klass_closure);
89 static void unlocked_loaded_classes_do(KlassClosure* klass_closure);
90 static void classes_unloading_do(void f(Klass* const));
91 static bool do_unloading();
92
93 // Expose state to avoid logging overhead in safepoint cleanup tasks.
94 static inline bool should_clean_metaspaces_and_reset();
95 static void set_should_clean_deallocate_lists() { _should_clean_deallocate_lists = true; }
96 static void clean_deallocate_lists(bool purge_previous_versions);
97 static void walk_metadata_and_clean_metaspaces();
98
99 // dictionary do
100 // Iterate over all klasses in dictionary, but
101 // just the classes from defining class loaders.
102 static void dictionary_classes_do(void f(InstanceKlass*));
103 // Added for initialize_itable_for_klass to handle exceptions.
104 static void dictionary_classes_do(void f(InstanceKlass*, TRAPS), TRAPS);
105
106 // VM_CounterDecay iteration support
107 static InstanceKlass* try_get_next_class();
108 static void adjust_saved_class(ClassLoaderData* cld);
109 static void adjust_saved_class(Klass* klass);
110
111 static void verify_dictionary();
|