src/share/vm/prims/jvmtiThreadState.hpp

changeset 1044
ea20d7ce26b0
parent 1043
0386097d43d8
child 1648
6deeaebad47a
equal deleted inserted replaced
1043:0386097d43d8 1044:ea20d7ce26b0
312 bool has_last_frame() { return _thread->has_last_Java_frame(); } 312 bool has_last_frame() { return _thread->has_last_Java_frame(); }
313 313
314 void update_for_pop_top_frame(); 314 void update_for_pop_top_frame();
315 315
316 // already holding JvmtiThreadState_lock - retrieve or create JvmtiThreadState 316 // already holding JvmtiThreadState_lock - retrieve or create JvmtiThreadState
317 // Can return NULL if JavaThread is exiting.
317 inline static JvmtiThreadState *state_for_while_locked(JavaThread *thread) { 318 inline static JvmtiThreadState *state_for_while_locked(JavaThread *thread) {
318 assert(JvmtiThreadState_lock->is_locked(), "sanity check"); 319 assert(JvmtiThreadState_lock->is_locked(), "sanity check");
319 320
320 JvmtiThreadState *state = thread->jvmti_thread_state(); 321 JvmtiThreadState *state = thread->jvmti_thread_state();
321 if (state == NULL) { 322 if (state == NULL) {
328 } 329 }
329 return state; 330 return state;
330 } 331 }
331 332
332 // retrieve or create JvmtiThreadState 333 // retrieve or create JvmtiThreadState
334 // Can return NULL if JavaThread is exiting.
333 inline static JvmtiThreadState *state_for(JavaThread *thread) { 335 inline static JvmtiThreadState *state_for(JavaThread *thread) {
334 JvmtiThreadState *state = thread->jvmti_thread_state(); 336 JvmtiThreadState *state = thread->jvmti_thread_state();
335 if (state == NULL) { 337 if (state == NULL) {
336 MutexLocker mu(JvmtiThreadState_lock); 338 MutexLocker mu(JvmtiThreadState_lock);
337 // check again with the lock held 339 // check again with the lock held

mercurial