39 #include "oops/symbol.hpp"
40 #include "runtime/atomic.inline.hpp"
41 #include "runtime/compilationPolicy.hpp"
42 #include "runtime/deoptimization.hpp"
43 #include "runtime/frame.inline.hpp"
44 #include "runtime/interfaceSupport.hpp"
45 #include "runtime/mutexLocker.hpp"
46 #include "runtime/orderAccess.inline.hpp"
47 #include "runtime/osThread.hpp"
48 #include "runtime/safepoint.hpp"
49 #include "runtime/signature.hpp"
50 #include "runtime/stubCodeGenerator.hpp"
51 #include "runtime/stubRoutines.hpp"
52 #include "runtime/sweeper.hpp"
53 #include "runtime/synchronizer.hpp"
54 #include "runtime/thread.inline.hpp"
55 #include "services/memTracker.hpp"
56 #include "services/runtimeService.hpp"
57 #include "utilities/events.hpp"
58 #include "utilities/macros.hpp"
59 #ifdef TARGET_ARCH_x86
60 # include "nativeInst_x86.hpp"
61 # include "vmreg_x86.inline.hpp"
62 #endif
63 #ifdef TARGET_ARCH_sparc
64 # include "nativeInst_sparc.hpp"
65 # include "vmreg_sparc.inline.hpp"
66 #endif
67 #ifdef TARGET_ARCH_zero
68 # include "nativeInst_zero.hpp"
69 # include "vmreg_zero.inline.hpp"
70 #endif
71 #ifdef TARGET_ARCH_arm
72 # include "nativeInst_arm.hpp"
73 # include "vmreg_arm.inline.hpp"
74 #endif
75 #ifdef TARGET_ARCH_ppc
76 # include "nativeInst_ppc.hpp"
77 # include "vmreg_ppc.inline.hpp"
78 #endif
79 #if INCLUDE_ALL_GCS
80 #include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp"
81 #include "gc_implementation/shared/suspendibleThreadSet.hpp"
82 #endif // INCLUDE_ALL_GCS
83 #ifdef COMPILER1
84 #include "c1/c1_globals.hpp"
85 #endif
86
87 PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
88
89 // --------------------------------------------------------------------------------------------------
90 // Implementation of Safepoint begin/end
91
92 SafepointSynchronize::SynchronizeState volatile SafepointSynchronize::_state = SafepointSynchronize::_not_synchronized;
93 volatile int SafepointSynchronize::_waiting_to_block = 0;
94 volatile int SafepointSynchronize::_safepoint_counter = 0;
95 int SafepointSynchronize::_current_jni_active_count = 0;
96 long SafepointSynchronize::_end_of_last_safepoint = 0;
97 static volatile int PageArmed = 0 ; // safepoint polling page is RO|RW vs PROT_NONE
98 static volatile int TryingToBlock = 0 ; // proximate value -- for advisory use only
|
39 #include "oops/symbol.hpp"
40 #include "runtime/atomic.inline.hpp"
41 #include "runtime/compilationPolicy.hpp"
42 #include "runtime/deoptimization.hpp"
43 #include "runtime/frame.inline.hpp"
44 #include "runtime/interfaceSupport.hpp"
45 #include "runtime/mutexLocker.hpp"
46 #include "runtime/orderAccess.inline.hpp"
47 #include "runtime/osThread.hpp"
48 #include "runtime/safepoint.hpp"
49 #include "runtime/signature.hpp"
50 #include "runtime/stubCodeGenerator.hpp"
51 #include "runtime/stubRoutines.hpp"
52 #include "runtime/sweeper.hpp"
53 #include "runtime/synchronizer.hpp"
54 #include "runtime/thread.inline.hpp"
55 #include "services/memTracker.hpp"
56 #include "services/runtimeService.hpp"
57 #include "utilities/events.hpp"
58 #include "utilities/macros.hpp"
59 #if INCLUDE_ALL_GCS
60 #include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp"
61 #include "gc_implementation/shared/suspendibleThreadSet.hpp"
62 #endif // INCLUDE_ALL_GCS
63 #ifdef COMPILER1
64 #include "c1/c1_globals.hpp"
65 #endif
66
67 PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
68
69 // --------------------------------------------------------------------------------------------------
70 // Implementation of Safepoint begin/end
71
72 SafepointSynchronize::SynchronizeState volatile SafepointSynchronize::_state = SafepointSynchronize::_not_synchronized;
73 volatile int SafepointSynchronize::_waiting_to_block = 0;
74 volatile int SafepointSynchronize::_safepoint_counter = 0;
75 int SafepointSynchronize::_current_jni_active_count = 0;
76 long SafepointSynchronize::_end_of_last_safepoint = 0;
77 static volatile int PageArmed = 0 ; // safepoint polling page is RO|RW vs PROT_NONE
78 static volatile int TryingToBlock = 0 ; // proximate value -- for advisory use only
|