Managed return value support for async calls
Open
area-Diagnostics-coreclr
runtime-async
- Dominant language
- C#
- Stars
- 18.3k
- Forks
- 5.6k
- PR merge metrics
- PR metrics pending
Description
Several things were identified during #120303 for managed return values:
- The JIT associates the `CALL_INSTRUCTION` mapping with the task-returning IL call instead of with the result of with the `AsyncHelpers.Await`. Associating with `Await` is more suited for the debugger.
- Currently `CordbJITILFrame::GetReturnValueForILOffset` may return a bogus result when the callee suspends
- Implementing the support when the callee suspends will require larger changes -- the current approach reads the result from the return register at the call return instruction, but for suspended callees we need to read it from somewhere else on resumption
Contributor guide
Assessment
This issue has not been assessed yet.