31 #include "code/pcDesc.hpp"
32 #include "code/scopeDesc.hpp"
33 #include "gc_interface/collectedHeap.hpp"
34 #include "interpreter/interpreter.hpp"
35 #include "memory/resourceArea.hpp"
36 #include "memory/universe.inline.hpp"
37 #include "oops/oop.inline.hpp"
38 #include "oops/symbol.hpp"
39 #include "runtime/compilationPolicy.hpp"
40 #include "runtime/deoptimization.hpp"
41 #include "runtime/frame.inline.hpp"
42 #include "runtime/interfaceSupport.hpp"
43 #include "runtime/mutexLocker.hpp"
44 #include "runtime/osThread.hpp"
45 #include "runtime/safepoint.hpp"
46 #include "runtime/signature.hpp"
47 #include "runtime/stubCodeGenerator.hpp"
48 #include "runtime/stubRoutines.hpp"
49 #include "runtime/sweeper.hpp"
50 #include "runtime/synchronizer.hpp"
51 #include "services/memTracker.hpp"
52 #include "services/runtimeService.hpp"
53 #include "utilities/events.hpp"
54 #ifdef TARGET_ARCH_x86
55 # include "nativeInst_x86.hpp"
56 # include "vmreg_x86.inline.hpp"
57 #endif
58 #ifdef TARGET_ARCH_sparc
59 # include "nativeInst_sparc.hpp"
60 # include "vmreg_sparc.inline.hpp"
61 #endif
62 #ifdef TARGET_ARCH_zero
63 # include "nativeInst_zero.hpp"
64 # include "vmreg_zero.inline.hpp"
65 #endif
66 #ifdef TARGET_ARCH_arm
67 # include "nativeInst_arm.hpp"
68 # include "vmreg_arm.inline.hpp"
69 #endif
70 #ifdef TARGET_ARCH_ppc
71 # include "nativeInst_ppc.hpp"
72 # include "vmreg_ppc.inline.hpp"
73 #endif
74 #ifdef TARGET_OS_FAMILY_linux
75 # include "thread_linux.inline.hpp"
76 #endif
77 #ifdef TARGET_OS_FAMILY_solaris
78 # include "thread_solaris.inline.hpp"
79 #endif
80 #ifdef TARGET_OS_FAMILY_windows
81 # include "thread_windows.inline.hpp"
82 #endif
83 #ifdef TARGET_OS_FAMILY_bsd
84 # include "thread_bsd.inline.hpp"
85 #endif
86 #ifndef SERIALGC
87 #include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp"
88 #include "gc_implementation/shared/concurrentGCThread.hpp"
89 #endif
90 #ifdef COMPILER1
91 #include "c1/c1_globals.hpp"
92 #endif
93
94 // --------------------------------------------------------------------------------------------------
95 // Implementation of Safepoint begin/end
96
97 SafepointSynchronize::SynchronizeState volatile SafepointSynchronize::_state = SafepointSynchronize::_not_synchronized;
98 volatile int SafepointSynchronize::_waiting_to_block = 0;
99 volatile int SafepointSynchronize::_safepoint_counter = 0;
100 int SafepointSynchronize::_current_jni_active_count = 0;
101 long SafepointSynchronize::_end_of_last_safepoint = 0;
102 static volatile int PageArmed = 0 ; // safepoint polling page is RO|RW vs PROT_NONE
103 static volatile int TryingToBlock = 0 ; // proximate value -- for advisory use only
104 static bool timeout_error_printed = false;
|
31 #include "code/pcDesc.hpp"
32 #include "code/scopeDesc.hpp"
33 #include "gc_interface/collectedHeap.hpp"
34 #include "interpreter/interpreter.hpp"
35 #include "memory/resourceArea.hpp"
36 #include "memory/universe.inline.hpp"
37 #include "oops/oop.inline.hpp"
38 #include "oops/symbol.hpp"
39 #include "runtime/compilationPolicy.hpp"
40 #include "runtime/deoptimization.hpp"
41 #include "runtime/frame.inline.hpp"
42 #include "runtime/interfaceSupport.hpp"
43 #include "runtime/mutexLocker.hpp"
44 #include "runtime/osThread.hpp"
45 #include "runtime/safepoint.hpp"
46 #include "runtime/signature.hpp"
47 #include "runtime/stubCodeGenerator.hpp"
48 #include "runtime/stubRoutines.hpp"
49 #include "runtime/sweeper.hpp"
50 #include "runtime/synchronizer.hpp"
51 #include "runtime/thread.inline.hpp"
52 #include "services/memTracker.hpp"
53 #include "services/runtimeService.hpp"
54 #include "utilities/events.hpp"
55 #ifdef TARGET_ARCH_x86
56 # include "nativeInst_x86.hpp"
57 # include "vmreg_x86.inline.hpp"
58 #endif
59 #ifdef TARGET_ARCH_sparc
60 # include "nativeInst_sparc.hpp"
61 # include "vmreg_sparc.inline.hpp"
62 #endif
63 #ifdef TARGET_ARCH_zero
64 # include "nativeInst_zero.hpp"
65 # include "vmreg_zero.inline.hpp"
66 #endif
67 #ifdef TARGET_ARCH_arm
68 # include "nativeInst_arm.hpp"
69 # include "vmreg_arm.inline.hpp"
70 #endif
71 #ifdef TARGET_ARCH_ppc
72 # include "nativeInst_ppc.hpp"
73 # include "vmreg_ppc.inline.hpp"
74 #endif
75 #ifndef SERIALGC
76 #include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp"
77 #include "gc_implementation/shared/concurrentGCThread.hpp"
78 #endif
79 #ifdef COMPILER1
80 #include "c1/c1_globals.hpp"
81 #endif
82
83 // --------------------------------------------------------------------------------------------------
84 // Implementation of Safepoint begin/end
85
86 SafepointSynchronize::SynchronizeState volatile SafepointSynchronize::_state = SafepointSynchronize::_not_synchronized;
87 volatile int SafepointSynchronize::_waiting_to_block = 0;
88 volatile int SafepointSynchronize::_safepoint_counter = 0;
89 int SafepointSynchronize::_current_jni_active_count = 0;
90 long SafepointSynchronize::_end_of_last_safepoint = 0;
91 static volatile int PageArmed = 0 ; // safepoint polling page is RO|RW vs PROT_NONE
92 static volatile int TryingToBlock = 0 ; // proximate value -- for advisory use only
93 static bool timeout_error_printed = false;
|