8184339: Thread::current_or_null() shall not assert if Posix TLS is not yet initialized
authorstuefe
Thu, 13 Jul 2017 16:28:14 +0200
changeset 46688 d33b4d593f9b
parent 46687 9843d494abd5
child 46690 a97413340818
8184339: Thread::current_or_null() shall not assert if Posix TLS is not yet initialized Reviewed-by: dcubed, coleenp
hotspot/src/share/vm/runtime/thread.hpp
--- a/hotspot/src/share/vm/runtime/thread.hpp	Tue Jul 18 15:43:07 2017 +0200
+++ b/hotspot/src/share/vm/runtime/thread.hpp	Thu Jul 13 16:28:14 2017 +0200
@@ -674,12 +674,18 @@
 #ifndef USE_LIBRARY_BASED_TLS_ONLY
   return _thr_current;
 #else
-  return ThreadLocalStorage::thread();
+  if (ThreadLocalStorage::is_initialized()) {
+    return ThreadLocalStorage::thread();
+  }
+  return NULL;
 #endif
 }
 
 inline Thread* Thread::current_or_null_safe() {
-  return ThreadLocalStorage::thread();
+  if (ThreadLocalStorage::is_initialized()) {
+    return ThreadLocalStorage::thread();
+  }
+  return NULL;
 }
 
 // Name support for threads.  non-JavaThread subclasses with multiple