comparison src/share/vm/classfile/systemDictionary.cpp @ 20619:b12a2a9b05ca

8056240: Investigate increased GC remark time after class unloading changes in CRM Fuse Reviewed-by: mgerdin, coleenp, bdelsart
author stefank
date Thu, 02 Oct 2014 10:55:36 +0200
parents 13dbe89e447c
children 82d3e7b5277a 02c7eebe5f52
comparison
equal deleted inserted replaced
20618:7024b693c8f9 20619:b12a2a9b05ca
1689 }; 1689 };
1690 #endif 1690 #endif
1691 1691
1692 // Assumes classes in the SystemDictionary are only unloaded at a safepoint 1692 // Assumes classes in the SystemDictionary are only unloaded at a safepoint
1693 // Note: anonymous classes are not in the SD. 1693 // Note: anonymous classes are not in the SD.
1694 bool SystemDictionary::do_unloading(BoolObjectClosure* is_alive) { 1694 bool SystemDictionary::do_unloading(BoolObjectClosure* is_alive, bool clean_alive) {
1695 // First, mark for unload all ClassLoaderData referencing a dead class loader. 1695 // First, mark for unload all ClassLoaderData referencing a dead class loader.
1696 bool unloading_occurred = ClassLoaderDataGraph::do_unloading(is_alive); 1696 bool unloading_occurred = ClassLoaderDataGraph::do_unloading(is_alive, clean_alive);
1697 if (unloading_occurred) { 1697 if (unloading_occurred) {
1698 dictionary()->do_unloading(); 1698 dictionary()->do_unloading();
1699 constraints()->purge_loader_constraints(); 1699 constraints()->purge_loader_constraints();
1700 resolution_errors()->purge_resolution_errors(); 1700 resolution_errors()->purge_resolution_errors();
1701 } 1701 }