src/hotspot/share/runtime/vm_operations.hpp
changeset 48787 7638bf98a312
parent 48631 862c41cf1c7f
child 49323 565336327354
equal deleted inserted replaced
48786:cc231bd80c8b 48787:7638bf98a312
   113   template(CTWThreshold)                          \
   113   template(CTWThreshold)                          \
   114   template(ThreadsSuspendJVMTI)                   \
   114   template(ThreadsSuspendJVMTI)                   \
   115   template(ICBufferFull)                          \
   115   template(ICBufferFull)                          \
   116   template(ScavengeMonitors)                      \
   116   template(ScavengeMonitors)                      \
   117   template(PrintMetadata)                         \
   117   template(PrintMetadata)                         \
       
   118   template(GTestExecuteAtSafepoint)               \
   118 
   119 
   119 class VM_Operation: public CHeapObj<mtInternal> {
   120 class VM_Operation: public CHeapObj<mtInternal> {
   120  public:
   121  public:
   121   enum Mode {
   122   enum Mode {
   122     _safepoint,       // blocking,        safepoint, vm_op C-heap allocated
   123     _safepoint,       // blocking,        safepoint, vm_op C-heap allocated
   284   VMOp_Type type() const                         { return VMOp_ScavengeMonitors; }
   285   VMOp_Type type() const                         { return VMOp_ScavengeMonitors; }
   285   Mode evaluation_mode() const                   { return _async_safepoint; }
   286   Mode evaluation_mode() const                   { return _async_safepoint; }
   286   bool is_cheap_allocated() const                { return true; }
   287   bool is_cheap_allocated() const                { return true; }
   287 };
   288 };
   288 
   289 
       
   290 // Base class for invoking parts of a gtest in a safepoint.
       
   291 // Derived classes provide the doit method.
       
   292 // Typically also need to transition the gtest thread from native to VM.
       
   293 class VM_GTestExecuteAtSafepoint: public VM_Operation {
       
   294  public:
       
   295   VMOp_Type type() const                         { return VMOp_GTestExecuteAtSafepoint; }
       
   296 
       
   297  protected:
       
   298   VM_GTestExecuteAtSafepoint() {}
       
   299 };
       
   300 
   289 class VM_Deoptimize: public VM_Operation {
   301 class VM_Deoptimize: public VM_Operation {
   290  public:
   302  public:
   291   VM_Deoptimize() {}
   303   VM_Deoptimize() {}
   292   VMOp_Type type() const                        { return VMOp_Deoptimize; }
   304   VMOp_Type type() const                        { return VMOp_Deoptimize; }
   293   void doit();
   305   void doit();