src/share/vm/runtime/java.cpp

Print this page
rev 13113 : 8182651: Add TRACE_ONLY conditional macro to support more fine-grained INCLUDE_TRACE programming
Reviewed-by:

*** 64,75 **** #include "runtime/task.hpp" #include "runtime/thread.inline.hpp" #include "runtime/timer.hpp" #include "runtime/vm_operations.hpp" #include "services/memTracker.hpp" - #include "trace/traceMacros.hpp" - #include "trace/tracing.hpp" #include "utilities/dtrace.hpp" #include "utilities/globalDefinitions.hpp" #include "utilities/histogram.hpp" #include "utilities/macros.hpp" #include "utilities/vmError.hpp" --- 64,73 ----
*** 86,95 **** --- 84,97 ---- #include "compiler/methodLiveness.hpp" #include "opto/compile.hpp" #include "opto/indexSet.hpp" #include "opto/runtime.hpp" #endif + #if INCLUDE_TRACE + #include "trace/traceMacros.hpp" + #include "trace/tracing.hpp" + #endif GrowableArray<Method*>* collected_profiled_methods; int compare_methods(Method** a, Method** b) { // %%% there can be 32-bit overflow here
*** 397,406 **** --- 399,418 ---- } } #endif + #if INCLUDE_TRACE + static void post_thread_end_event(const JavaThread* jt) { + EventThreadEnd event; + if (event.should_commit()) { + event.set_thread(THREAD_TRACE_ID(jt)); + event.commit(); + } + } + #endif + // Note: before_exit() can be executed only once, if more than one threads // are trying to shutdown the VM at the same time, only one thread // can run before_exit() and all other threads must wait. void before_exit(JavaThread* thread) { #define BEFORE_EXIT_NOT_RUN 0
*** 446,461 **** // Hang forever on exit if we're reporting an error. if (ShowMessageBoxOnError && is_error_reported()) { os::infinite_sleep(); } ! EventThreadEnd event; ! if (event.should_commit()) { ! event.set_thread(THREAD_TRACE_ID(thread)); ! event.commit(); ! } ! TRACE_VM_EXIT(); // Stop the WatcherThread. We do this before disenrolling various // PeriodicTasks to reduce the likelihood of races. if (PeriodicTask::num_tasks() > 0) { --- 458,468 ---- // Hang forever on exit if we're reporting an error. if (ShowMessageBoxOnError && is_error_reported()) { os::infinite_sleep(); } ! TRACE_ONLY(post_thread_end_event(thread);) TRACE_VM_EXIT(); // Stop the WatcherThread. We do this before disenrolling various // PeriodicTasks to reduce the likelihood of races. if (PeriodicTask::num_tasks() > 0) {