From 344c821f83979eb8b406d0df975d95b6d8d99ea5 Mon Sep 17 00:00:00 2001 From: Ben Adams Date: Tue, 10 Nov 2015 16:24:13 +0000 Subject: [PATCH] Remove sync block->task await rather than synchronously blocking and then returning a Task.FromResult --- .../Http/Frame.FeatureCollection.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Microsoft.AspNet.Server.Kestrel/Http/Frame.FeatureCollection.cs b/src/Microsoft.AspNet.Server.Kestrel/Http/Frame.FeatureCollection.cs index 1a4efb32fb..2159d70056 100644 --- a/src/Microsoft.AspNet.Server.Kestrel/Http/Frame.FeatureCollection.cs +++ b/src/Microsoft.AspNet.Server.Kestrel/Http/Frame.FeatureCollection.cs @@ -277,7 +277,7 @@ namespace Microsoft.AspNet.Server.Kestrel.Http OnCompleted(callback, state); } - Task IHttpUpgradeFeature.UpgradeAsync() + async Task IHttpUpgradeFeature.UpgradeAsync() { StatusCode = 101; ReasonPhrase = "Switching Protocols"; @@ -290,8 +290,10 @@ namespace Microsoft.AspNet.Server.Kestrel.Http ResponseHeaders["Upgrade"] = values; } } - ProduceStartAndFireOnStarting(immediate: true).GetAwaiter().GetResult(); - return Task.FromResult(DuplexStream); + + await ProduceStartAndFireOnStarting(immediate: true); + + return DuplexStream; } IEnumerator> IEnumerable>.GetEnumerator() => FastEnumerable().GetEnumerator();