- 
    Type:
Enhancement
 - 
    Resolution: Fixed
 - 
    Priority:
  P3                     
     - 
    Affects Version/s: 19, repo-loom
 - 
    Component/s: hotspot
 
- 
        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
 
 -