dotnet / dotnet/runtime

Managed return value support for async calls

Open
#121,011 1 comment 0 reactions 1 assignee Claimed by @tommcdon View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.