< prev index next >

src/share/vm/runtime/vmThread.cpp

Print this page

        

*** 23,34 **** --- 23,36 ---- */ #include "precompiled.hpp" #include "compiler/compileBroker.hpp" #include "gc_interface/collectedHeap.hpp" + #if INCLUDE_JFR #include "jfr/jfrEvents.hpp" #include "jfr/support/jfrThreadId.hpp" + #endif #include "memory/resourceArea.hpp" #include "oops/method.hpp" #include "oops/oop.inline.hpp" #include "runtime/interfaceSupport.hpp" #include "runtime/mutexLocker.hpp"
*** 358,367 **** --- 360,370 ---- st->print("\"%s\" ", name()); Thread::print_on(st); st->cr(); } + #if INCLUDE_JFR static void post_vm_operation_event(EventExecuteVMOperation* event, VM_Operation* op) { assert(event != NULL, "invariant"); assert(event->should_commit(), "invariant"); assert(op != NULL, "invariant"); const bool is_concurrent = op->evaluate_concurrently();
*** 374,383 **** --- 377,387 ---- // This is because the caller thread could have exited already. event->set_caller(is_concurrent ? 0 : JFR_THREAD_ID(op->calling_thread())); event->set_safepointId(evaluate_at_safepoint ? SafepointSynchronize::safepoint_counter() : 0); event->commit(); } + #endif void VMThread::evaluate_operation(VM_Operation* op) { ResourceMark rm; {
*** 389,403 **** --- 393,411 ---- HOTSPOT_VMOPS_BEGIN( (char *) op->name(), strlen(op->name()), op->evaluation_mode()); #endif /* USDT2 */ + #if INCLUDE_JFR EventExecuteVMOperation event; + #endif op->evaluate(); + #if INCLUDE_JFR if (event.should_commit()) { post_vm_operation_event(&event, op); } + #endif #ifndef USDT2 HS_DTRACE_PROBE3(hotspot, vmops__end, op->name(), strlen(op->name()), op->evaluation_mode()); #else /* USDT2 */
< prev index next >