Post

Was on a call with Glenn Condron last week and he alluded to a change coming with async await. I asked if it was green threads, but no. He tried to explain, but he was short on time. I'm wondering if this is what he was talking about.

Interesting. I assume that is the follow up to async2? That said, can I opt-out/opt-in? Especially for dotnet8 applications that might get recompiled by a new SDK, maybe I want to stick to the „old“ version.

The SDK isn't enough to make it use the new version it'll be based on APIs that are available at runtime (much like you can't use static interface methods on older runtime versions)

I have always found the C# async state machine generation to be an elegant approach, making it easy to see exactly what will be executed when inspecting the IL. Keen to see the optimisations that will come from moving it into the JIT.

Has some sort of "fat asembly" where both the old and new style method implementations are contained in the same file been considered? That would make adopting in libraries much much easier. (and give an escape hatch if some fatal JIT flaw was found, I guess)

What happens if I wrote my application using the new runtime but my dependencies were compiled using the current system? I assume they'll work seamlessly. We really don't need a new netfx/netcore divide waiting for libraries to be converted.