< prev index next >

src/share/vm/jfr/support/jfrThreadLocal.cpp

Print this page
rev 9380 : 8237499: JFR: Include stack trace in the ThreadStart event
Reviewed-by: egahlin

*** 53,63 **** _cpu_time(0), _wallclock_time(os::javaTimeNanos()), _stack_trace_hash(0), _stackdepth(0), _entering_suspend_flag(0), ! _dead(false) {} u8 JfrThreadLocal::add_data_lost(u8 value) { _data_lost += value; return _data_lost; } --- 53,67 ---- _cpu_time(0), _wallclock_time(os::javaTimeNanos()), _stack_trace_hash(0), _stackdepth(0), _entering_suspend_flag(0), ! _dead(false) { ! ! Thread* thread = Thread::current_or_null(); ! _parent_trace_id = thread != NULL ? thread->jfr_thread_local()->trace_id() : (traceid)0; ! } u8 JfrThreadLocal::add_data_lost(u8 value) { _data_lost += value; return _data_lost; }
*** 76,85 **** --- 80,90 ---- } static void send_java_thread_start_event(JavaThread* jt) { EventThreadStart event; event.set_thread(jt->jfr_thread_local()->thread_id()); + event.set_parentThread(jt->jfr_thread_local()->parent_thread_id()); event.commit(); } void JfrThreadLocal::on_start(Thread* t) { assert(t != NULL, "invariant");
*** 87,96 **** --- 92,104 ---- if (JfrRecorder::is_recording()) { if (t->is_Java_thread()) { send_java_thread_start_event((JavaThread*)t); } } + if (t->jfr_thread_local()->has_cached_stack_trace()) { + t->jfr_thread_local()->clear_cached_stack_trace(); + } } static void send_java_thread_end_events(traceid id, JavaThread* jt) { assert(jt != NULL, "invariant"); assert(Thread::current() == jt, "invariant");
< prev index next >