< prev index next >

src/hotspot/share/runtime/interfaceSupport.inline.hpp

Print this page




  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()) {


< prev index next >