diff -r bf3518bba285 -r 2a6c7c7b30a7 hotspot/src/share/vm/runtime/vm_operations.cpp --- a/hotspot/src/share/vm/runtime/vm_operations.cpp Fri Dec 04 04:29:31 2015 +0000 +++ b/hotspot/src/share/vm/runtime/vm_operations.cpp Fri Dec 04 04:06:37 2015 -0500 @@ -378,7 +378,7 @@ int VM_Exit::set_vm_exited() { CodeCacheExtensions::complete_step(CodeCacheExtensionsSteps::LastStep); - Thread * thr_cur = ThreadLocalStorage::get_thread_slow(); + Thread * thr_cur = Thread::current(); assert(SafepointSynchronize::is_at_safepoint(), "must be at safepoint already"); @@ -400,7 +400,7 @@ // to wait for threads in _thread_in_native state to be quiescent. assert(SafepointSynchronize::is_at_safepoint(), "must be at safepoint already"); - Thread * thr_cur = ThreadLocalStorage::get_thread_slow(); + Thread * thr_cur = Thread::current(); Monitor timer(Mutex::leaf, "VM_Exit timer", true, Monitor::_safepoint_check_never); @@ -477,7 +477,7 @@ void VM_Exit::wait_if_vm_exited() { if (_vm_exited && - ThreadLocalStorage::get_thread_slow() != _shutdown_thread) { + Thread::current_or_null() != _shutdown_thread) { // _vm_exited is set at safepoint, and the Threads_lock is never released // we will block here until the process dies Threads_lock->lock_without_safepoint_check();