< prev index next >
src/hotspot/share/prims/jvmtiThreadState.hpp
Print this page
rev 47290 : eosterlund CR - need more inline fixes.
*** 334,371 ****
void update_for_pop_top_frame();
// already holding JvmtiThreadState_lock - retrieve or create JvmtiThreadState
// Can return NULL if JavaThread is exiting.
! inline static JvmtiThreadState *state_for_while_locked(JavaThread *thread) {
! assert(JvmtiThreadState_lock->is_locked(), "sanity check");
!
! JvmtiThreadState *state = thread->jvmti_thread_state();
! if (state == NULL) {
! if (thread->is_exiting()) {
! // don't add a JvmtiThreadState to a thread that is exiting
! return NULL;
! }
!
! state = new JvmtiThreadState(thread);
! }
! return state;
! }
!
// retrieve or create JvmtiThreadState
// Can return NULL if JavaThread is exiting.
! inline static JvmtiThreadState *state_for(JavaThread *thread) {
! JvmtiThreadState *state = thread->jvmti_thread_state();
! if (state == NULL) {
! MutexLocker mu(JvmtiThreadState_lock);
! // check again with the lock held
! state = state_for_while_locked(thread);
! } else {
! CHECK_UNHANDLED_OOPS_ONLY(Thread::current()->clear_unhandled_oops());
! }
! return state;
! }
// JVMTI ForceEarlyReturn support
// This is set to earlyret_pending to signal that top Java frame
// should be returned immediately
--- 334,347 ----
void update_for_pop_top_frame();
// already holding JvmtiThreadState_lock - retrieve or create JvmtiThreadState
// Can return NULL if JavaThread is exiting.
! static JvmtiThreadState *state_for_while_locked(JavaThread *thread);
// retrieve or create JvmtiThreadState
// Can return NULL if JavaThread is exiting.
! static JvmtiThreadState *state_for(JavaThread *thread);
// JVMTI ForceEarlyReturn support
// This is set to earlyret_pending to signal that top Java frame
// should be returned immediately
< prev index next >