43 // VM_ENTRY_BASE macros. These macros are used to guard entry points into
44 // the VM and perform checks upon leave of the VM.
45
46
47 class InterfaceSupport: AllStatic {
48 # ifdef ASSERT
49 public:
50 static long _scavenge_alot_counter;
51 static long _fullgc_alot_counter;
52 static long _number_of_calls;
53 static long _fullgc_alot_invocation;
54
55 // Helper methods used to implement +ScavengeALot and +FullGCALot
56 static void check_gc_alot() { if (ScavengeALot || FullGCALot) gc_alot(); }
57 static void gc_alot();
58
59 static void walk_stack_from(vframe* start_vf);
60 static void walk_stack();
61
62 static void zombieAll();
63 static void unlinkSymbols();
64 static void deoptimizeAll();
65 static void stress_derived_pointers();
66 static void verify_stack();
67 static void verify_last_frame();
68 # endif
69
70 public:
71 static void serialize_thread_state_with_handler(JavaThread* thread) {
72 serialize_thread_state_internal(thread, true);
73 }
74
75 // Should only call this if we know that we have a proper SEH set up.
76 static void serialize_thread_state(JavaThread* thread) {
77 serialize_thread_state_internal(thread, false);
78 }
79
80 private:
81 static void serialize_thread_state_internal(JavaThread* thread, bool needs_exception_handler) {
82 // Make sure new state is seen by VM thread
83 if (os::is_MP()) {
|
43 // VM_ENTRY_BASE macros. These macros are used to guard entry points into
44 // the VM and perform checks upon leave of the VM.
45
46
47 class InterfaceSupport: AllStatic {
48 # ifdef ASSERT
49 public:
50 static long _scavenge_alot_counter;
51 static long _fullgc_alot_counter;
52 static long _number_of_calls;
53 static long _fullgc_alot_invocation;
54
55 // Helper methods used to implement +ScavengeALot and +FullGCALot
56 static void check_gc_alot() { if (ScavengeALot || FullGCALot) gc_alot(); }
57 static void gc_alot();
58
59 static void walk_stack_from(vframe* start_vf);
60 static void walk_stack();
61
62 static void zombieAll();
63 static void deoptimizeAll();
64 static void stress_derived_pointers();
65 static void verify_stack();
66 static void verify_last_frame();
67 # endif
68
69 public:
70 static void serialize_thread_state_with_handler(JavaThread* thread) {
71 serialize_thread_state_internal(thread, true);
72 }
73
74 // Should only call this if we know that we have a proper SEH set up.
75 static void serialize_thread_state(JavaThread* thread) {
76 serialize_thread_state_internal(thread, false);
77 }
78
79 private:
80 static void serialize_thread_state_internal(JavaThread* thread, bool needs_exception_handler) {
81 // Make sure new state is seen by VM thread
82 if (os::is_MP()) {
|