src/hotspot/share/services/threadService.cpp
changeset 50065 ae0ebd3cf949
parent 49658 8237a91c1cca
child 50288 3831655869bc
equal deleted inserted replaced
50064:e4a7bacf99b1 50065:ae0ebd3cf949
   120   }
   120   }
   121 }
   121 }
   122 
   122 
   123 void ThreadService::remove_thread(JavaThread* thread, bool daemon) {
   123 void ThreadService::remove_thread(JavaThread* thread, bool daemon) {
   124   Atomic::dec(&_exiting_threads_count);
   124   Atomic::dec(&_exiting_threads_count);
       
   125   if (daemon) {
       
   126     Atomic::dec(&_exiting_daemon_threads_count);
       
   127   }
   125 
   128 
   126   if (thread->is_hidden_from_external_view() ||
   129   if (thread->is_hidden_from_external_view() ||
   127       thread->is_jvmti_agent_thread()) {
   130       thread->is_jvmti_agent_thread()) {
   128     return;
   131     return;
   129   }
   132   }
   130 
   133 
   131   _live_threads_count->set_value(_live_threads_count->get_value() - 1);
   134   _live_threads_count->set_value(_live_threads_count->get_value() - 1);
   132 
       
   133   if (daemon) {
   135   if (daemon) {
   134     _daemon_threads_count->set_value(_daemon_threads_count->get_value() - 1);
   136     _daemon_threads_count->set_value(_daemon_threads_count->get_value() - 1);
   135     Atomic::dec(&_exiting_daemon_threads_count);
       
   136   }
   137   }
   137 }
   138 }
   138 
   139 
   139 void ThreadService::current_thread_exiting(JavaThread* jt) {
   140 void ThreadService::current_thread_exiting(JavaThread* jt) {
   140   assert(jt == JavaThread::current(), "Called by current thread");
   141   assert(jt == JavaThread::current(), "Called by current thread");