1866 SymbolTable::do_check_concurrent_work();
1867 }
1868
1869 {
1870 GCTraceTime(Debug, gc, phases) t("Dictionary", gc_timer);
1871 constraints()->purge_loader_constraints();
1872 resolution_errors()->purge_resolution_errors();
1873 }
1874 }
1875
1876 {
1877 GCTraceTime(Debug, gc, phases) t("ProtectionDomainCacheTable", gc_timer);
1878 // Oops referenced by the protection domain cache table may get unreachable independently
1879 // of the class loader (eg. cached protection domain oops). So we need to
1880 // explicitly unlink them here.
1881 _pd_cache_table->unlink();
1882 }
1883
1884 if (do_cleaning) {
1885 GCTraceTime(Debug, gc, phases) t("ResolvedMethodTable", gc_timer);
1886 ResolvedMethodTable::unlink();
1887 }
1888
1889 return unloading_occurred;
1890 }
1891
1892 void SystemDictionary::oops_do(OopClosure* f) {
1893 f->do_oop(&_java_system_loader);
1894 f->do_oop(&_java_platform_loader);
1895 f->do_oop(&_system_loader_lock_obj);
1896 CDS_ONLY(SystemDictionaryShared::oops_do(f);)
1897
1898 // Visit extra methods
1899 invoke_method_table()->oops_do(f);
1900 }
1901
1902 // CDS: scan and relocate all classes in the system dictionary.
1903 void SystemDictionary::classes_do(MetaspaceClosure* it) {
1904 ClassLoaderData::the_null_class_loader_data()->dictionary()->classes_do(it);
1905 }
1906
|
1866 SymbolTable::do_check_concurrent_work();
1867 }
1868
1869 {
1870 GCTraceTime(Debug, gc, phases) t("Dictionary", gc_timer);
1871 constraints()->purge_loader_constraints();
1872 resolution_errors()->purge_resolution_errors();
1873 }
1874 }
1875
1876 {
1877 GCTraceTime(Debug, gc, phases) t("ProtectionDomainCacheTable", gc_timer);
1878 // Oops referenced by the protection domain cache table may get unreachable independently
1879 // of the class loader (eg. cached protection domain oops). So we need to
1880 // explicitly unlink them here.
1881 _pd_cache_table->unlink();
1882 }
1883
1884 if (do_cleaning) {
1885 GCTraceTime(Debug, gc, phases) t("ResolvedMethodTable", gc_timer);
1886 ResolvedMethodTable::trigger_cleanup();
1887 }
1888
1889 return unloading_occurred;
1890 }
1891
1892 void SystemDictionary::oops_do(OopClosure* f) {
1893 f->do_oop(&_java_system_loader);
1894 f->do_oop(&_java_platform_loader);
1895 f->do_oop(&_system_loader_lock_obj);
1896 CDS_ONLY(SystemDictionaryShared::oops_do(f);)
1897
1898 // Visit extra methods
1899 invoke_method_table()->oops_do(f);
1900 }
1901
1902 // CDS: scan and relocate all classes in the system dictionary.
1903 void SystemDictionary::classes_do(MetaspaceClosure* it) {
1904 ClassLoaderData::the_null_class_loader_data()->dictionary()->classes_do(it);
1905 }
1906
|