< prev index next >

src/hotspot/share/runtime/thread.cpp

Print this page
rev 48162 : 8191789: migrate more Thread-SMR stuff from thread.[ch]pp -> threadSMR.[ch]pp
Reviewed-by: stefank
rev 48163 : CR round 0: dcubed - move more code into sort order, add update_smr_tlh_stats(); stefank - refactor Threads::add() and Threads::remove() to allow more ThreadsSMRSupport functions to be private, move is_a_protected_JavaThread_with_lock() to threadSMR.inline.hpp

@@ -4365,20 +4365,11 @@
   }
 
   ThreadService::add_thread(p, daemon);
 
   // Maintain fast thread list
-  ThreadsList *new_list = ThreadsList::add_thread(ThreadsSMRSupport::get_smr_java_thread_list(), p);
-  if (EnableThreadSMRStatistics) {
-    ThreadsSMRSupport::inc_smr_java_thread_list_alloc_cnt();
-    ThreadsSMRSupport::update_smr_java_thread_list_max(new_list->length());
-  }
-  // Initial _smr_java_thread_list will not generate a "Threads::add" mesg.
-  log_debug(thread, smr)("tid=" UINTX_FORMAT ": Threads::add: new ThreadsList=" INTPTR_FORMAT, os::current_thread_id(), p2i(new_list));
-
-  ThreadsList *old_list = ThreadsSMRSupport::xchg_smr_java_thread_list(new_list);
-  ThreadsSMRSupport::smr_free_list(old_list);
+  ThreadsSMRSupport::add_thread(p);
 
   // Possible GC point.
   Events::log(p, "Thread added: " INTPTR_FORMAT, p2i(p));
 }
 

@@ -4392,21 +4383,11 @@
   { MutexLocker ml(Threads_lock);
 
     assert(ThreadsSMRSupport::get_smr_java_thread_list()->includes(p), "p must be present");
 
     // Maintain fast thread list
-    ThreadsList *new_list = ThreadsList::remove_thread(ThreadsSMRSupport::get_smr_java_thread_list(), p);
-    if (EnableThreadSMRStatistics) {
-      ThreadsSMRSupport::inc_smr_java_thread_list_alloc_cnt();
-      // This list is smaller so no need to check for a "longest" update.
-    }
-
-    // Final _smr_java_thread_list will not generate a "Threads::remove" mesg.
-    log_debug(thread, smr)("tid=" UINTX_FORMAT ": Threads::remove: new ThreadsList=" INTPTR_FORMAT, os::current_thread_id(), p2i(new_list));
-
-    ThreadsList *old_list = ThreadsSMRSupport::xchg_smr_java_thread_list(new_list);
-    ThreadsSMRSupport::smr_free_list(old_list);
+    ThreadsSMRSupport::remove_thread(p);
 
     JavaThread* current = _thread_list;
     JavaThread* prev    = NULL;
 
     while (current != p) {
< prev index next >