275 // Deopt helper that can deoptimize frames in threads other than the
276 // current thread. Only used through Deoptimization::deoptimize_frame.
277 class VM_DeoptimizeFrame: public VM_Operation {
278 friend class Deoptimization;
279
280 private:
281 JavaThread* _thread;
282 intptr_t* _id;
283 int _reason;
284 VM_DeoptimizeFrame(JavaThread* thread, intptr_t* id, int reason);
285
286 public:
287 VMOp_Type type() const { return VMOp_DeoptimizeFrame; }
288 void doit();
289 bool allow_nested_vm_operations() const { return true; }
290 };
291
292 #ifndef PRODUCT
293 class VM_DeoptimizeAll: public VM_Operation {
294 private:
295 KlassHandle _dependee;
296 public:
297 VM_DeoptimizeAll() {}
298 VMOp_Type type() const { return VMOp_DeoptimizeAll; }
299 void doit();
300 bool allow_nested_vm_operations() const { return true; }
301 };
302
303
304 class VM_ZombieAll: public VM_Operation {
305 public:
306 VM_ZombieAll() {}
307 VMOp_Type type() const { return VMOp_ZombieAll; }
308 void doit();
309 bool allow_nested_vm_operations() const { return true; }
310 };
311 #endif // PRODUCT
312
313 class VM_UnlinkSymbols: public VM_Operation {
314 public:
315 VM_UnlinkSymbols() {}
|
275 // Deopt helper that can deoptimize frames in threads other than the
276 // current thread. Only used through Deoptimization::deoptimize_frame.
277 class VM_DeoptimizeFrame: public VM_Operation {
278 friend class Deoptimization;
279
280 private:
281 JavaThread* _thread;
282 intptr_t* _id;
283 int _reason;
284 VM_DeoptimizeFrame(JavaThread* thread, intptr_t* id, int reason);
285
286 public:
287 VMOp_Type type() const { return VMOp_DeoptimizeFrame; }
288 void doit();
289 bool allow_nested_vm_operations() const { return true; }
290 };
291
292 #ifndef PRODUCT
293 class VM_DeoptimizeAll: public VM_Operation {
294 private:
295 Klass* _dependee;
296 public:
297 VM_DeoptimizeAll() {}
298 VMOp_Type type() const { return VMOp_DeoptimizeAll; }
299 void doit();
300 bool allow_nested_vm_operations() const { return true; }
301 };
302
303
304 class VM_ZombieAll: public VM_Operation {
305 public:
306 VM_ZombieAll() {}
307 VMOp_Type type() const { return VMOp_ZombieAll; }
308 void doit();
309 bool allow_nested_vm_operations() const { return true; }
310 };
311 #endif // PRODUCT
312
313 class VM_UnlinkSymbols: public VM_Operation {
314 public:
315 VM_UnlinkSymbols() {}
|