equal
deleted
inserted
replaced
1804 } |
1804 } |
1805 |
1805 |
1806 // Call after last event on thread |
1806 // Call after last event on thread |
1807 EVENT_THREAD_EXIT(this); |
1807 EVENT_THREAD_EXIT(this); |
1808 |
1808 |
1809 log_info(os, thread)("Thread " UINTX_FORMAT " %s.", |
|
1810 os::current_thread_id(), |
|
1811 exit_type == JavaThread::normal_exit ? "exiting" : "detaching"); |
|
1812 |
|
1813 // Call Thread.exit(). We try 3 times in case we got another Thread.stop during |
1809 // Call Thread.exit(). We try 3 times in case we got another Thread.stop during |
1814 // the execution of the method. If that is not enough, then we don't really care. Thread.stop |
1810 // the execution of the method. If that is not enough, then we don't really care. Thread.stop |
1815 // is deprecated anyhow. |
1811 // is deprecated anyhow. |
1816 if (!is_Compiler_thread()) { |
1812 if (!is_Compiler_thread()) { |
1817 int count = 3; |
1813 int count = 3; |
1929 // added to the thread's dirty card queue as a result are not lost. |
1925 // added to the thread's dirty card queue as a result are not lost. |
1930 if (UseG1GC) { |
1926 if (UseG1GC) { |
1931 flush_barrier_queues(); |
1927 flush_barrier_queues(); |
1932 } |
1928 } |
1933 #endif // INCLUDE_ALL_GCS |
1929 #endif // INCLUDE_ALL_GCS |
|
1930 |
|
1931 log_info(os, thread)("JavaThread %s (tid: " UINTX_FORMAT ").", |
|
1932 exit_type == JavaThread::normal_exit ? "exiting" : "detaching", |
|
1933 os::current_thread_id()); |
1934 |
1934 |
1935 // Remove from list of active threads list, and notify VM thread if we are the last non-daemon thread |
1935 // Remove from list of active threads list, and notify VM thread if we are the last non-daemon thread |
1936 Threads::remove(this); |
1936 Threads::remove(this); |
1937 } |
1937 } |
1938 |
1938 |