equal
deleted
inserted
replaced
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(); |