equal
deleted
inserted
replaced
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"); |