-
Enhancement
-
Resolution: Fixed
-
P3
-
19, repo-loom
-
b20
Initial description from Alan:
“The SetLocalXXX functions may be used to set the value of a local variable in the topmost frame of a virtual thread suspended at a breakpoint or single step event. An implementation may support setting locals in other cases.”
We want to re-visit this wording and/or require that the virtual thread be suspended.
Also, the spec of all GetLocalXXX/SetLocalXXX should require the target thread be suspended or current even if the thread is non-virtual.
Updated description:
The implementation of SetLocalXXX for virtual threads has just been fixed withJDK-8286580 to follow the JVMTI spec.
However, it was identified that the GetLocalXXX/SetLocalXXX function should require suspending the target thread. All these functions have a stack depth parameter. There only way to ensure the execution state of target thread matches the stack depth expectations is to deal with current or suspended target thread. This needs a CSR and other compatibility checks.
“The SetLocalXXX functions may be used to set the value of a local variable in the topmost frame of a virtual thread suspended at a breakpoint or single step event. An implementation may support setting locals in other cases.”
We want to re-visit this wording and/or require that the virtual thread be suspended.
Also, the spec of all GetLocalXXX/SetLocalXXX should require the target thread be suspended or current even if the thread is non-virtual.
Updated description:
The implementation of SetLocalXXX for virtual threads has just been fixed with
However, it was identified that the GetLocalXXX/SetLocalXXX function should require suspending the target thread. All these functions have a stack depth parameter. There only way to ensure the execution state of target thread matches the stack depth expectations is to deal with current or suspended target thread. This needs a CSR and other compatibility checks.
- csr for
-
JDK-8294690 GetLocalXXX/SetLocalXXX spec should require suspending target thread
- Closed
- relates to
-
JDK-8286836 Crash in GetSetLocalTest: No support for deferred values in continuations
- Open
-
JDK-8286580 serviceability/jvmti/vthread/GetSetLocalTest failed with assert: Not supported for heap frames
- Resolved