src/share/vm/runtime/vmThread.cpp
Print this page
rev 4201 : 8007147: Trace event ExecuteVMOperation may get dangling pointer
Reviewed-by:
@@ -384,11 +384,13 @@
if (event.should_commit()) {
event.set_operation(op->type());
event.set_safepoint(op->evaluate_at_safepoint());
event.set_blocking(!op->evaluate_concurrently());
- event.set_caller(op->calling_thread()->osthread()->thread_id());
+ // Only write caller thread information for non-concurrent vm operations.
+ // For concurrent vm operations, the caller thread could have exited already.
+ event.set_caller(op->evaluate_concurrently() ? 0 : op->calling_thread()->osthread()->thread_id());
event.commit();
}
#ifndef USDT2
HS_DTRACE_PROBE3(hotspot, vmops__end, op->name(), strlen(op->name()),