8235913: ThreadStop should be a handshake

Reviewed-by: dholmes, mdoerr
This commit is contained in:
Robbin Ehn 2019-12-19 17:02:11 +01:00
parent e4c96dea46
commit a170a4af4a
4 changed files with 22 additions and 44 deletions

View file

@ -210,30 +210,6 @@ class VM_Cleanup: public VM_Operation {
void doit() {};
};
class VM_ThreadStop: public VM_Operation {
private:
oop _thread; // The Thread that the Throwable is thrown against
oop _throwable; // The Throwable thrown at the target Thread
public:
// All oops are passed as JNI handles, since there is no guarantee that a GC might happen before the
// VM operation is executed.
VM_ThreadStop(oop thread, oop throwable) {
_thread = thread;
_throwable = throwable;
}
VMOp_Type type() const { return VMOp_ThreadStop; }
oop target_thread() const { return _thread; }
oop throwable() const { return _throwable;}
void doit();
// We deoptimize if top-most frame is compiled - this might require a C2I adapter to be generated
bool allow_nested_vm_operations() const { return true; }
// GC support
void oops_do(OopClosure* f) {
f->do_oop(&_thread); f->do_oop(&_throwable);
}
};
class VM_ClearICs: public VM_Operation {
private:
bool _preserve_static_stubs;