255 void doit();
256 bool allow_nested_vm_operations() const { return true; }
257 };
258
259 class VM_MarkActiveNMethods: public VM_Operation {
260 public:
261 VM_MarkActiveNMethods() {}
262 VMOp_Type type() const { return VMOp_MarkActiveNMethods; }
263 void doit();
264 bool allow_nested_vm_operations() const { return true; }
265 };
266
267 // Deopt helper that can deoptimize frames in threads other than the
268 // current thread. Only used through Deoptimization::deoptimize_frame.
269 class VM_DeoptimizeFrame: public VM_Operation {
270 friend class Deoptimization;
271
272 private:
273 JavaThread* _thread;
274 intptr_t* _id;
275 VM_DeoptimizeFrame(JavaThread* thread, intptr_t* id);
276
277 public:
278 VMOp_Type type() const { return VMOp_DeoptimizeFrame; }
279 void doit();
280 bool allow_nested_vm_operations() const { return true; }
281 };
282
283 #ifndef PRODUCT
284 class VM_DeoptimizeAll: public VM_Operation {
285 private:
286 KlassHandle _dependee;
287 public:
288 VM_DeoptimizeAll() {}
289 VMOp_Type type() const { return VMOp_DeoptimizeAll; }
290 void doit();
291 bool allow_nested_vm_operations() const { return true; }
292 };
293
294
295 class VM_ZombieAll: public VM_Operation {
|
255 void doit();
256 bool allow_nested_vm_operations() const { return true; }
257 };
258
259 class VM_MarkActiveNMethods: public VM_Operation {
260 public:
261 VM_MarkActiveNMethods() {}
262 VMOp_Type type() const { return VMOp_MarkActiveNMethods; }
263 void doit();
264 bool allow_nested_vm_operations() const { return true; }
265 };
266
267 // Deopt helper that can deoptimize frames in threads other than the
268 // current thread. Only used through Deoptimization::deoptimize_frame.
269 class VM_DeoptimizeFrame: public VM_Operation {
270 friend class Deoptimization;
271
272 private:
273 JavaThread* _thread;
274 intptr_t* _id;
275 int _reason;
276 VM_DeoptimizeFrame(JavaThread* thread, intptr_t* id, int reason);
277
278 public:
279 VMOp_Type type() const { return VMOp_DeoptimizeFrame; }
280 void doit();
281 bool allow_nested_vm_operations() const { return true; }
282 };
283
284 #ifndef PRODUCT
285 class VM_DeoptimizeAll: public VM_Operation {
286 private:
287 KlassHandle _dependee;
288 public:
289 VM_DeoptimizeAll() {}
290 VMOp_Type type() const { return VMOp_DeoptimizeAll; }
291 void doit();
292 bool allow_nested_vm_operations() const { return true; }
293 };
294
295
296 class VM_ZombieAll: public VM_Operation {
|