ClassUnloadingWithConcurrentMark
Simone Bordet
simone.bordet at gmail.com
Tue Oct 1 10:50:53 UTC 2019
eHi,
I'm a bit confused by this flag so I'd like some clarification.
AFAIU, it's recently (JDK 9+?) possible to do class unloading without
being at a safepoint.
There is now a lock for the ClassLoaderDataGraph that can be grabbed
outside safepoint to do class unloading.
Do I understand right that Shenandoah does class unloading
"concurrently", i.e. without being at a safepoint?
I skimmed over the code, and seems to be that
SystemDictionary::do_unload() is called from
ShenandoahHeap::unload_classes_and_cleanup_tables() that is called
from ShenandoahConcurrentMark::finish_mark_from_roots(), which can
only be called at safepoint, so apparently the answer to my question
is "no"?
Thanks!
--
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless. Victoria Livschitz
More information about the shenandoah-dev
mailing list