public static async Task ExecutionContextCopyOnWrite()
{
AsyncLocal<int> local = new AsyncLocal<int>();
local.Value = 42;
await Run(async () =>
{
SynchronizationContext.SetSynchronizationContext(new SynchronizationContext());
Assert.Equal(42, local.Value);
local.Value = 12;
});
Assert.Equal(local.Value, 42);
}