mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-20 02:54:35 +02:00
8235913: ThreadStop should be a handshake
Reviewed-by: dholmes, mdoerr
This commit is contained in:
parent
e4c96dea46
commit
a170a4af4a
4 changed files with 22 additions and 44 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue