< prev index next >

src/share/vm/runtime/vmThread.cpp

Print this page

        

*** 30,39 **** --- 30,40 ---- #include "oops/oop.inline.hpp" #include "oops/verifyOopClosure.hpp" #include "runtime/interfaceSupport.hpp" #include "runtime/mutexLocker.hpp" #include "runtime/os.hpp" + #include "runtime/safepoint.hpp" #include "runtime/thread.inline.hpp" #include "runtime/vmThread.hpp" #include "runtime/vm_operations.hpp" #include "services/runtimeService.hpp" #include "trace/tracing.hpp"
*** 350,367 **** EventExecuteVMOperation event; op->evaluate(); if (event.should_commit()) { ! bool is_concurrent = op->evaluate_concurrently(); event.set_operation(op->type()); ! event.set_safepoint(op->evaluate_at_safepoint()); event.set_blocking(!is_concurrent); // Only write caller thread information for non-concurrent vm operations. // For concurrent vm operations, the thread id is set to 0 indicating thread is unknown. // This is because the caller thread could have exited already. event.set_caller(is_concurrent ? 0 : op->calling_thread()->osthread()->thread_id()); event.commit(); } HOTSPOT_VMOPS_END( (char *) op->name(), strlen(op->name()), --- 351,370 ---- EventExecuteVMOperation event; op->evaluate(); if (event.should_commit()) { ! const bool is_concurrent = op->evaluate_concurrently(); ! const bool evaluate_at_safepoint = op->evaluate_at_safepoint(); event.set_operation(op->type()); ! event.set_safepoint(evaluate_at_safepoint); event.set_blocking(!is_concurrent); // Only write caller thread information for non-concurrent vm operations. // For concurrent vm operations, the thread id is set to 0 indicating thread is unknown. // This is because the caller thread could have exited already. event.set_caller(is_concurrent ? 0 : op->calling_thread()->osthread()->thread_id()); + event.set_safepointId(evaluate_at_safepoint ? SafepointSynchronize::safepoint_counter() : 0); event.commit(); } HOTSPOT_VMOPS_END( (char *) op->name(), strlen(op->name()),
< prev index next >