< prev index next >

src/hotspot/share/services/threadService.hpp

Print this page
rev 52112 : [mq]: 8021335

*** 56,84 **** static PerfCounter* _total_threads_count; static PerfVariable* _live_threads_count; static PerfVariable* _peak_threads_count; static PerfVariable* _daemon_threads_count; - // These 2 counters are atomically incremented once the thread is exiting. - // They will be atomically decremented when ThreadService::remove_thread is called. - static volatile int _exiting_threads_count; - static volatile int _exiting_daemon_threads_count; - static bool _thread_monitoring_contention_enabled; static bool _thread_cpu_time_enabled; static bool _thread_allocated_memory_enabled; // Need to keep the list of thread dump result that // keep references to Method* since thread dump can be // requested by multiple threads concurrently. static ThreadDumpResult* _threaddump_list; public: static void init(); static void add_thread(JavaThread* thread, bool daemon); static void remove_thread(JavaThread* thread, bool daemon); ! static void current_thread_exiting(JavaThread* jt); static bool set_thread_monitoring_contention(bool flag); static bool is_thread_monitoring_contention() { return _thread_monitoring_contention_enabled; } static bool set_thread_cpu_time_enabled(bool flag); --- 56,81 ---- static PerfCounter* _total_threads_count; static PerfVariable* _live_threads_count; static PerfVariable* _peak_threads_count; static PerfVariable* _daemon_threads_count; static bool _thread_monitoring_contention_enabled; static bool _thread_cpu_time_enabled; static bool _thread_allocated_memory_enabled; // Need to keep the list of thread dump result that // keep references to Method* since thread dump can be // requested by multiple threads concurrently. static ThreadDumpResult* _threaddump_list; + static void decrement_thread_counts(JavaThread* jt, bool daemon); + public: static void init(); static void add_thread(JavaThread* thread, bool daemon); static void remove_thread(JavaThread* thread, bool daemon); ! static void current_thread_exiting(JavaThread* jt, bool daemon); static bool set_thread_monitoring_contention(bool flag); static bool is_thread_monitoring_contention() { return _thread_monitoring_contention_enabled; } static bool set_thread_cpu_time_enabled(bool flag);
*** 87,101 **** static bool set_thread_allocated_memory_enabled(bool flag); static bool is_thread_allocated_memory_enabled() { return _thread_cpu_time_enabled; } static jlong get_total_thread_count() { return _total_threads_count->get_value(); } static jlong get_peak_thread_count() { return _peak_threads_count->get_value(); } ! static jlong get_live_thread_count() { return _live_threads_count->get_value() - _exiting_threads_count; } ! static jlong get_daemon_thread_count() { return _daemon_threads_count->get_value() - _exiting_daemon_threads_count; } ! ! static int exiting_threads_count() { return _exiting_threads_count; } ! static int exiting_daemon_threads_count() { return _exiting_daemon_threads_count; } // Support for thread dump static void add_thread_dump(ThreadDumpResult* dump); static void remove_thread_dump(ThreadDumpResult* dump); --- 84,95 ---- static bool set_thread_allocated_memory_enabled(bool flag); static bool is_thread_allocated_memory_enabled() { return _thread_cpu_time_enabled; } static jlong get_total_thread_count() { return _total_threads_count->get_value(); } static jlong get_peak_thread_count() { return _peak_threads_count->get_value(); } ! static jlong get_live_thread_count() { return _live_threads_count->get_value(); } ! static jlong get_daemon_thread_count() { return _daemon_threads_count->get_value(); } // Support for thread dump static void add_thread_dump(ThreadDumpResult* dump); static void remove_thread_dump(ThreadDumpResult* dump);
< prev index next >