618 |
618 |
619 post_safepoint_cleanup_task_event(event, safepoint_id, name); |
619 post_safepoint_cleanup_task_event(event, safepoint_id, name); |
620 } |
620 } |
621 } |
621 } |
622 |
622 |
623 if (_subtasks.try_claim_task(SafepointSynchronize::SAFEPOINT_CLEANUP_CLD_PURGE)) { |
|
624 if (ClassLoaderDataGraph::should_purge_and_reset()) { |
|
625 // CMS delays purging the CLDG until the beginning of the next safepoint and to |
|
626 // make sure concurrent sweep is done |
|
627 const char* name = "purging class loader data graph"; |
|
628 EventSafepointCleanupTask event; |
|
629 TraceTime timer(name, TRACETIME_LOG(Info, safepoint, cleanup)); |
|
630 ClassLoaderDataGraph::purge(); |
|
631 |
|
632 post_safepoint_cleanup_task_event(event, safepoint_id, name); |
|
633 } |
|
634 } |
|
635 |
|
636 if (_subtasks.try_claim_task(SafepointSynchronize::SAFEPOINT_CLEANUP_SYSTEM_DICTIONARY_RESIZE)) { |
623 if (_subtasks.try_claim_task(SafepointSynchronize::SAFEPOINT_CLEANUP_SYSTEM_DICTIONARY_RESIZE)) { |
637 if (Dictionary::does_any_dictionary_needs_resizing()) { |
624 if (Dictionary::does_any_dictionary_needs_resizing()) { |
638 const char* name = "resizing system dictionaries"; |
625 const char* name = "resizing system dictionaries"; |
639 EventSafepointCleanupTask event; |
626 EventSafepointCleanupTask event; |
640 TraceTime timer(name, TRACETIME_LOG(Info, safepoint, cleanup)); |
627 TraceTime timer(name, TRACETIME_LOG(Info, safepoint, cleanup)); |