diff -r 2c3cc4b01880 -r c16ac7a2eba4 src/hotspot/share/jfr/leakprofiler/checkpoint/eventEmitter.cpp --- a/src/hotspot/share/jfr/leakprofiler/checkpoint/eventEmitter.cpp Wed Oct 30 16:14:56 2019 +0100 +++ b/src/hotspot/share/jfr/leakprofiler/checkpoint/eventEmitter.cpp Wed Oct 30 19:43:52 2019 +0100 @@ -34,6 +34,7 @@ #include "memory/resourceArea.hpp" #include "oops/markWord.hpp" #include "oops/oop.inline.hpp" +#include "runtime/mutexLocker.hpp" #include "runtime/thread.inline.hpp" #include "runtime/vmThread.hpp" @@ -51,8 +52,8 @@ } void EventEmitter::emit(ObjectSampler* sampler, int64_t cutoff_ticks, bool emit_all) { + assert(JfrStream_lock->owned_by_self(), "invariant"); assert(sampler != NULL, "invariant"); - ResourceMark rm; EdgeStore edge_store; if (cutoff_ticks <= 0) { @@ -68,6 +69,7 @@ } size_t EventEmitter::write_events(ObjectSampler* object_sampler, EdgeStore* edge_store, bool emit_all) { + assert_locked_or_safepoint(JfrStream_lock); assert(_thread == Thread::current(), "invariant"); assert(_thread->jfr_thread_local() == _jfr_thread_local, "invariant"); assert(object_sampler != NULL, "invariant");