-
Notifications
You must be signed in to change notification settings - Fork 5k
[RuntimeAsync] Move runtime async to the main repo #113976
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…actually write some "async" and start breaking things again
… and see if suspension works NOTE: No methods with generic parameters will work with the current implementation, generics may require a bunch of infrastructure work, separate from the async work
- Public apis for directly awaiting from async2 code - Update test case to use the new apis and now the code is lovely and simple
…ils into doc, but managed code may have the right logic :)
…ext as appropriate
make things build
…ably in the presence of Suspend operations, but other stuff seems to work. Now to rework Task generation to avoid multithreaded races
…t number of iterations, I think
remove DEFINE_METHOD for no longer existing methods
Find and replace all instances of "async2" with "runtime async", or just "async" when it is clear that it is runtime async? |
I am considering that. The It is just a mostly mechanical change that is further on the list of things to do. |
…ants in API used in reflection,
Do not review just yet. May need some work.
A list of things to address. Some of these may be more relevant to address separately later.
Required before merge:
NativeCodeVersion
/NativeCodeVersionNode
/PrepareCodeConfig
slot changes (not used in the end)auto
inClassifyAsyncMethodSignatureCore
restoreregs_for_runtimesuspension.h
ILCodeStream::EmitUNBOX
if it is unusedgetAsyncResumptionStub
should be debug-onlyClean ups that are potentially not necessary for this PR (but some of these may be nice-to-have before review):
CORINFO_HELP_THROWEXACT
in favor of usingExceptionDispatchInfo
GenTreeCall::gtIsAsyncCall
with a flag or calling convention changeget_RuntimeAsyncViaJitGeneratedStateMachines
MethodTableNative::GetLoaderAllocatorHandle
in managed codeMethodTable::GetParallelMethodDesc