< 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,4384 **** } 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); // Possible GC point. Events::log(p, "Thread added: " INTPTR_FORMAT, p2i(p)); } --- 4365,4375 ---- } ThreadService::add_thread(p, daemon); // Maintain fast thread list ! ThreadsSMRSupport::add_thread(p); // Possible GC point. Events::log(p, "Thread added: " INTPTR_FORMAT, p2i(p)); }
*** 4392,4412 **** { 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); JavaThread* current = _thread_list; JavaThread* prev = NULL; while (current != p) { --- 4383,4393 ---- { MutexLocker ml(Threads_lock); assert(ThreadsSMRSupport::get_smr_java_thread_list()->includes(p), "p must be present"); // Maintain fast thread list ! ThreadsSMRSupport::remove_thread(p); JavaThread* current = _thread_list; JavaThread* prev = NULL; while (current != p) {
< prev index next >