< prev index next >
src/share/vm/runtime/thread.cpp
Print this page
rev 8910 : full patch for jfr
*** 1,7 ****
/*
! * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
--- 1,7 ----
/*
! * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*** 1668,1678 ****
JvmtiExport::post_thread_start(this);
}
EventThreadStart event;
if (event.should_commit()) {
! event.set_javalangthread(java_lang_Thread::thread_id(this->threadObj()));
event.commit();
}
// We call another function to do the rest so we are sure that the stack addresses used
// from there will be lower than the stack base just computed
--- 1668,1678 ----
JvmtiExport::post_thread_start(this);
}
EventThreadStart event;
if (event.should_commit()) {
! event.set_thread(THREAD_TRACE_ID(this));
event.commit();
}
// We call another function to do the rest so we are sure that the stack addresses used
// from there will be lower than the stack base just computed
*** 1802,1812 ****
// Called before the java thread exit since we want to read info
// from java_lang_Thread object
EventThreadEnd event;
if (event.should_commit()) {
! event.set_javalangthread(java_lang_Thread::thread_id(this->threadObj()));
event.commit();
}
// Call after last event on thread
EVENT_THREAD_EXIT(this);
--- 1802,1812 ----
// Called before the java thread exit since we want to read info
// from java_lang_Thread object
EventThreadEnd event;
if (event.should_commit()) {
! event.set_thread(THREAD_TRACE_ID(this));
event.commit();
}
// Call after last event on thread
EVENT_THREAD_EXIT(this);
*** 2183,2192 ****
--- 2183,2197 ----
}
if (check_asyncs) {
check_and_handle_async_exceptions();
}
+ #if INCLUDE_TRACE
+ if (is_trace_suspend()) {
+ TRACE_SUSPEND_THREAD(this);
+ }
+ #endif
}
void JavaThread::send_thread_stop(oop java_throwable) {
assert(Thread::current()->is_VM_thread(), "should be in the vm thread");
assert(Threads_lock->is_locked(), "Threads_lock should be locked by safepoint code");
*** 2421,2430 ****
--- 2426,2440 ----
f.deoptimize(thread);
} else {
fatal("missed deoptimization!");
}
}
+ #if INCLUDE_TRACE
+ if (thread->is_trace_suspend()) {
+ TRACE_SUSPEND_THREAD(thread);
+ }
+ #endif
}
// Slow path when the native==>VM/Java barriers detect a safepoint is in
// progress or when _suspend_flags is non-zero.
// Current thread needs to self-suspend if there is a suspend request and/or
< prev index next >