362 MutexLocker cld_lock(ClassLoaderDataGraph_lock); |
362 MutexLocker cld_lock(ClassLoaderDataGraph_lock); |
363 MutexLocker module_lock(Module_lock); |
363 MutexLocker module_lock(Module_lock); |
364 if (!LeakProfiler::is_running()) { |
364 if (!LeakProfiler::is_running()) { |
365 JfrCheckpointWriter writer(true, true, Thread::current()); |
365 JfrCheckpointWriter writer(true, true, Thread::current()); |
366 JfrTypeSet::serialize(&writer, NULL, false); |
366 JfrTypeSet::serialize(&writer, NULL, false); |
367 return; |
367 } else { |
368 } |
368 Thread* const t = Thread::current(); |
369 Thread* const t = Thread::current(); |
369 JfrCheckpointWriter leakp_writer(false, true, t); |
370 JfrCheckpointWriter leakp_writer(false, true, t); |
370 JfrCheckpointWriter writer(false, true, t); |
371 JfrCheckpointWriter writer(false, true, t); |
371 JfrTypeSet::serialize(&writer, &leakp_writer, false); |
372 JfrTypeSet::serialize(&writer, &leakp_writer, false); |
372 ObjectSampleCheckpoint::on_type_set(leakp_writer); |
373 ObjectSampleCheckpoint::on_type_set(leakp_writer); |
373 } |
374 } |
374 } |
375 |
375 |
376 void JfrCheckpointManager::write_type_set_for_unloaded_classes() { |
376 void JfrCheckpointManager::write_type_set_for_unloaded_classes() { |
377 assert_locked_or_safepoint(ClassLoaderDataGraph_lock); |
377 assert_locked_or_safepoint(ClassLoaderDataGraph_lock); |
378 JfrCheckpointWriter writer(false, true, Thread::current()); |
378 JfrCheckpointWriter writer(false, true, Thread::current()); |