--- a/src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeManager.cpp Sat Sep 14 13:18:20 2019 +0200
+++ b/src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeManager.cpp Sun Sep 15 13:41:19 2019 +0200
@@ -173,6 +173,9 @@
void JfrTypeManager::write_type_set() {
assert(!SafepointSynchronize::is_at_safepoint(), "invariant");
+ // can safepoint here because of Module_lock
+ MutexLocker cld_lock(SafepointSynchronize::is_at_safepoint() ? NULL : ClassLoaderDataGraph_lock);
+ MutexLocker lock(SafepointSynchronize::is_at_safepoint() ? NULL : Module_lock);
if (!LeakProfiler::is_running()) {
JfrCheckpointWriter writer;
TypeSet set;