349 thread = ThreadLocalStorage::thread(); |
349 thread = ThreadLocalStorage::thread(); |
350 } |
350 } |
351 } |
351 } |
352 |
352 |
353 if (thread != NULL) { |
353 if (thread != NULL) { |
354 #ifdef ASSERT |
|
355 // cause assertion on stack base. This ensures that threads call |
|
356 // Thread::record_stack_base_and_size() method, which will create |
|
357 // thread native stack records. |
|
358 thread->stack_base(); |
|
359 #endif |
|
360 // for a JavaThread, if it is running in native state, we need to transition it to |
354 // for a JavaThread, if it is running in native state, we need to transition it to |
361 // VM state, so it can stop at safepoint. JavaThread running in VM state does not |
355 // VM state, so it can stop at safepoint. JavaThread running in VM state does not |
362 // need lock to write records. |
356 // need lock to write records. |
363 if (thread->is_Java_thread() && ((JavaThread*)thread)->is_safepoint_visible()) { |
357 if (thread->is_Java_thread() && ((JavaThread*)thread)->is_safepoint_visible()) { |
364 if (((JavaThread*)thread)->thread_state() == _thread_in_native) { |
358 if (((JavaThread*)thread)->thread_state() == _thread_in_native) { |