33 #include "runtime/frame.hpp"
34 #include "runtime/javaFrameAnchor.hpp"
35 #include "runtime/jniHandles.hpp"
36 #include "runtime/mutexLocker.hpp"
37 #include "runtime/os.hpp"
38 #include "runtime/osThread.hpp"
39 #include "runtime/park.hpp"
40 #include "runtime/safepoint.hpp"
41 #include "runtime/stubRoutines.hpp"
42 #include "runtime/threadLocalStorage.hpp"
43 #include "runtime/thread_ext.hpp"
44 #include "runtime/unhandledOops.hpp"
45 #include "trace/traceBackend.hpp"
46 #include "trace/traceMacros.hpp"
47 #include "utilities/exceptions.hpp"
48 #include "utilities/macros.hpp"
49 #if INCLUDE_ALL_GCS
50 #include "gc/g1/dirtyCardQueue.hpp"
51 #include "gc/g1/satbMarkQueue.hpp"
52 #endif // INCLUDE_ALL_GCS
53 #ifdef TARGET_ARCH_zero
54 # include "stack_zero.hpp"
55 #endif
56
57 class ThreadSafepointState;
58 class ThreadProfiler;
59
60 class JvmtiThreadState;
61 class JvmtiGetLoadedClassesClosure;
62 class ThreadStatistics;
63 class ConcurrentLocksDump;
64 class ParkEvent;
65 class Parker;
66
67 class ciEnv;
68 class CompileThread;
69 class CompileLog;
70 class CompileTask;
71 class CompileQueue;
72 class CompilerCounters;
73 class vframeArray;
1888 // the SATB queue if the thread is created while a marking cycle is
1889 // in progress. The activation / de-activation of the SATB queues at
1890 // the beginning / end of a marking cycle is done during safepoints
1891 // so we have to make sure this method is called outside one to be
1892 // able to safely read the active field of the SATB queue set. Right
1893 // now, it is called just before the thread is added to the Java
1894 // thread list in the Threads::add() method. That method is holding
1895 // the Threads_lock which ensures we are outside a safepoint. We
1896 // cannot do the obvious and set the active field of the SATB queue
1897 // when the thread is created given that, in some cases, safepoints
1898 // might happen between the JavaThread constructor being called and the
1899 // thread being added to the Java thread list (an example of this is
1900 // when the structure for the DestroyJavaVM thread is created).
1901 #if INCLUDE_ALL_GCS
1902 void initialize_queues();
1903 #else // INCLUDE_ALL_GCS
1904 void initialize_queues() { }
1905 #endif // INCLUDE_ALL_GCS
1906
1907 // Machine dependent stuff
1908 #ifdef TARGET_OS_ARCH_linux_x86
1909 # include "thread_linux_x86.hpp"
1910 #endif
1911 #ifdef TARGET_OS_ARCH_linux_sparc
1912 # include "thread_linux_sparc.hpp"
1913 #endif
1914 #ifdef TARGET_OS_ARCH_linux_zero
1915 # include "thread_linux_zero.hpp"
1916 #endif
1917 #ifdef TARGET_OS_ARCH_solaris_x86
1918 # include "thread_solaris_x86.hpp"
1919 #endif
1920 #ifdef TARGET_OS_ARCH_solaris_sparc
1921 # include "thread_solaris_sparc.hpp"
1922 #endif
1923 #ifdef TARGET_OS_ARCH_windows_x86
1924 # include "thread_windows_x86.hpp"
1925 #endif
1926 #ifdef TARGET_OS_ARCH_linux_arm
1927 # include "thread_linux_arm.hpp"
1928 #endif
1929 #ifdef TARGET_OS_ARCH_linux_ppc
1930 # include "thread_linux_ppc.hpp"
1931 #endif
1932 #ifdef TARGET_OS_ARCH_linux_aarch64
1933 # include "thread_linux_aarch64.hpp"
1934 #endif
1935 #ifdef TARGET_OS_ARCH_aix_ppc
1936 # include "thread_aix_ppc.hpp"
1937 #endif
1938 #ifdef TARGET_OS_ARCH_bsd_x86
1939 # include "thread_bsd_x86.hpp"
1940 #endif
1941 #ifdef TARGET_OS_ARCH_bsd_zero
1942 # include "thread_bsd_zero.hpp"
1943 #endif
1944
1945
1946 public:
1947 void set_blocked_on_compilation(bool value) {
1948 _blocked_on_compilation = value;
1949 }
1950
1951 bool blocked_on_compilation() {
1952 return _blocked_on_compilation;
1953 }
1954 protected:
1955 bool _blocked_on_compilation;
1956
1957
1958 // JSR166 per-thread parker
1959 private:
1960 Parker* _parker;
1961 public:
1962 Parker* parker() { return _parker; }
1963
1964 // Biased locking support
|
33 #include "runtime/frame.hpp"
34 #include "runtime/javaFrameAnchor.hpp"
35 #include "runtime/jniHandles.hpp"
36 #include "runtime/mutexLocker.hpp"
37 #include "runtime/os.hpp"
38 #include "runtime/osThread.hpp"
39 #include "runtime/park.hpp"
40 #include "runtime/safepoint.hpp"
41 #include "runtime/stubRoutines.hpp"
42 #include "runtime/threadLocalStorage.hpp"
43 #include "runtime/thread_ext.hpp"
44 #include "runtime/unhandledOops.hpp"
45 #include "trace/traceBackend.hpp"
46 #include "trace/traceMacros.hpp"
47 #include "utilities/exceptions.hpp"
48 #include "utilities/macros.hpp"
49 #if INCLUDE_ALL_GCS
50 #include "gc/g1/dirtyCardQueue.hpp"
51 #include "gc/g1/satbMarkQueue.hpp"
52 #endif // INCLUDE_ALL_GCS
53 #ifdef ZERO
54 # include "stack_zero.hpp"
55 #endif
56
57 class ThreadSafepointState;
58 class ThreadProfiler;
59
60 class JvmtiThreadState;
61 class JvmtiGetLoadedClassesClosure;
62 class ThreadStatistics;
63 class ConcurrentLocksDump;
64 class ParkEvent;
65 class Parker;
66
67 class ciEnv;
68 class CompileThread;
69 class CompileLog;
70 class CompileTask;
71 class CompileQueue;
72 class CompilerCounters;
73 class vframeArray;
1888 // the SATB queue if the thread is created while a marking cycle is
1889 // in progress. The activation / de-activation of the SATB queues at
1890 // the beginning / end of a marking cycle is done during safepoints
1891 // so we have to make sure this method is called outside one to be
1892 // able to safely read the active field of the SATB queue set. Right
1893 // now, it is called just before the thread is added to the Java
1894 // thread list in the Threads::add() method. That method is holding
1895 // the Threads_lock which ensures we are outside a safepoint. We
1896 // cannot do the obvious and set the active field of the SATB queue
1897 // when the thread is created given that, in some cases, safepoints
1898 // might happen between the JavaThread constructor being called and the
1899 // thread being added to the Java thread list (an example of this is
1900 // when the structure for the DestroyJavaVM thread is created).
1901 #if INCLUDE_ALL_GCS
1902 void initialize_queues();
1903 #else // INCLUDE_ALL_GCS
1904 void initialize_queues() { }
1905 #endif // INCLUDE_ALL_GCS
1906
1907 // Machine dependent stuff
1908 #include OS_CPU_HEADER(thread)
1909
1910 public:
1911 void set_blocked_on_compilation(bool value) {
1912 _blocked_on_compilation = value;
1913 }
1914
1915 bool blocked_on_compilation() {
1916 return _blocked_on_compilation;
1917 }
1918 protected:
1919 bool _blocked_on_compilation;
1920
1921
1922 // JSR166 per-thread parker
1923 private:
1924 Parker* _parker;
1925 public:
1926 Parker* parker() { return _parker; }
1927
1928 // Biased locking support
|