< prev index next >

src/hotspot/share/runtime/vm_operations.hpp

Print this page




  35 // The following classes are used for operations
  36 // initiated by a Java thread but that must
  37 // take place in the VMThread.
  38 
  39 #define VM_OP_ENUM(type)   VMOp_##type,
  40 
  41 // Note: When new VM_XXX comes up, add 'XXX' to the template table.
  42 #define VM_OPS_DO(template)                       \
  43   template(Dummy)                                 \
  44   template(ThreadStop)                            \
  45   template(ThreadDump)                            \
  46   template(PrintThreads)                          \
  47   template(FindDeadlocks)                         \
  48   template(ClearICs)                              \
  49   template(ForceSafepoint)                        \
  50   template(ForceAsyncSafepoint)                   \
  51   template(Deoptimize)                            \
  52   template(DeoptimizeFrame)                       \
  53   template(DeoptimizeAll)                         \
  54   template(ZombieAll)                             \
  55   template(UnlinkSymbols)                         \
  56   template(Verify)                                \
  57   template(PrintJNI)                              \
  58   template(HeapDumper)                            \
  59   template(DeoptimizeTheWorld)                    \
  60   template(CollectForMetadataAllocation)          \
  61   template(GC_HeapInspection)                     \
  62   template(GenCollectFull)                        \
  63   template(GenCollectFullConcurrent)              \
  64   template(GenCollectForAllocation)               \
  65   template(ParallelGCFailedAllocation)            \
  66   template(ParallelGCSystemGC)                    \
  67   template(CGC_Operation)                         \
  68   template(CMS_Initial_Mark)                      \
  69   template(CMS_Final_Remark)                      \
  70   template(G1CollectForAllocation)                \
  71   template(G1CollectFull)                         \
  72   template(ZOperation)                            \
  73   template(HandshakeOneThread)                    \
  74   template(HandshakeAllThreads)                   \
  75   template(HandshakeFallback)                     \


 335 #ifndef PRODUCT
 336 class VM_DeoptimizeAll: public VM_Operation {
 337  private:
 338   Klass* _dependee;
 339  public:
 340   VM_DeoptimizeAll() {}
 341   VMOp_Type type() const                         { return VMOp_DeoptimizeAll; }
 342   void doit();
 343   bool allow_nested_vm_operations() const        { return true; }
 344 };
 345 
 346 
 347 class VM_ZombieAll: public VM_Operation {
 348  public:
 349   VM_ZombieAll() {}
 350   VMOp_Type type() const                         { return VMOp_ZombieAll; }
 351   void doit();
 352   bool allow_nested_vm_operations() const        { return true; }
 353 };
 354 #endif // PRODUCT
 355 
 356 class VM_UnlinkSymbols: public VM_Operation {
 357  public:
 358   VM_UnlinkSymbols() {}
 359   VMOp_Type type() const                         { return VMOp_UnlinkSymbols; }
 360   void doit();
 361   bool allow_nested_vm_operations() const        { return true; }
 362 };
 363 
 364 class VM_Verify: public VM_Operation {
 365  public:
 366   VMOp_Type type() const { return VMOp_Verify; }
 367   void doit();
 368 };
 369 
 370 
 371 class VM_PrintThreads: public VM_Operation {
 372  private:
 373   outputStream* _out;
 374   bool _print_concurrent_locks;
 375   bool _print_extended_info;
 376  public:
 377   VM_PrintThreads()
 378     : _out(tty), _print_concurrent_locks(PrintConcurrentLocks), _print_extended_info(false)
 379   {}
 380   VM_PrintThreads(outputStream* out, bool print_concurrent_locks, bool print_extended_info)
 381     : _out(out), _print_concurrent_locks(print_concurrent_locks), _print_extended_info(print_extended_info)
 382   {}




  35 // The following classes are used for operations
  36 // initiated by a Java thread but that must
  37 // take place in the VMThread.
  38 
  39 #define VM_OP_ENUM(type)   VMOp_##type,
  40 
  41 // Note: When new VM_XXX comes up, add 'XXX' to the template table.
  42 #define VM_OPS_DO(template)                       \
  43   template(Dummy)                                 \
  44   template(ThreadStop)                            \
  45   template(ThreadDump)                            \
  46   template(PrintThreads)                          \
  47   template(FindDeadlocks)                         \
  48   template(ClearICs)                              \
  49   template(ForceSafepoint)                        \
  50   template(ForceAsyncSafepoint)                   \
  51   template(Deoptimize)                            \
  52   template(DeoptimizeFrame)                       \
  53   template(DeoptimizeAll)                         \
  54   template(ZombieAll)                             \

  55   template(Verify)                                \
  56   template(PrintJNI)                              \
  57   template(HeapDumper)                            \
  58   template(DeoptimizeTheWorld)                    \
  59   template(CollectForMetadataAllocation)          \
  60   template(GC_HeapInspection)                     \
  61   template(GenCollectFull)                        \
  62   template(GenCollectFullConcurrent)              \
  63   template(GenCollectForAllocation)               \
  64   template(ParallelGCFailedAllocation)            \
  65   template(ParallelGCSystemGC)                    \
  66   template(CGC_Operation)                         \
  67   template(CMS_Initial_Mark)                      \
  68   template(CMS_Final_Remark)                      \
  69   template(G1CollectForAllocation)                \
  70   template(G1CollectFull)                         \
  71   template(ZOperation)                            \
  72   template(HandshakeOneThread)                    \
  73   template(HandshakeAllThreads)                   \
  74   template(HandshakeFallback)                     \


 334 #ifndef PRODUCT
 335 class VM_DeoptimizeAll: public VM_Operation {
 336  private:
 337   Klass* _dependee;
 338  public:
 339   VM_DeoptimizeAll() {}
 340   VMOp_Type type() const                         { return VMOp_DeoptimizeAll; }
 341   void doit();
 342   bool allow_nested_vm_operations() const        { return true; }
 343 };
 344 
 345 
 346 class VM_ZombieAll: public VM_Operation {
 347  public:
 348   VM_ZombieAll() {}
 349   VMOp_Type type() const                         { return VMOp_ZombieAll; }
 350   void doit();
 351   bool allow_nested_vm_operations() const        { return true; }
 352 };
 353 #endif // PRODUCT








 354 
 355 class VM_Verify: public VM_Operation {
 356  public:
 357   VMOp_Type type() const { return VMOp_Verify; }
 358   void doit();
 359 };
 360 
 361 
 362 class VM_PrintThreads: public VM_Operation {
 363  private:
 364   outputStream* _out;
 365   bool _print_concurrent_locks;
 366   bool _print_extended_info;
 367  public:
 368   VM_PrintThreads()
 369     : _out(tty), _print_concurrent_locks(PrintConcurrentLocks), _print_extended_info(false)
 370   {}
 371   VM_PrintThreads(outputStream* out, bool print_concurrent_locks, bool print_extended_info)
 372     : _out(out), _print_concurrent_locks(print_concurrent_locks), _print_extended_info(print_extended_info)
 373   {}


< prev index next >