From 677fb870fdb61437b879092ab9a538ccfb5b7a21 Mon Sep 17 00:00:00 2001 From: David Fowler Date: Mon, 7 Oct 2019 09:17:44 -0700 Subject: [PATCH] Small improvement to HttpsConnectionMiddleware (#14764) - Dispatch using Task.Yield instead of Task.Run. Task.Yield no longer allocates a work item or delegate and doesn't break causality when looking at dumps while Task.Run does. --- .../Core/src/Middleware/HttpsConnectionMiddleware.cs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/Servers/Kestrel/Core/src/Middleware/HttpsConnectionMiddleware.cs b/src/Servers/Kestrel/Core/src/Middleware/HttpsConnectionMiddleware.cs index 4dce5d0348..d40eba259f 100644 --- a/src/Servers/Kestrel/Core/src/Middleware/HttpsConnectionMiddleware.cs +++ b/src/Servers/Kestrel/Core/src/Middleware/HttpsConnectionMiddleware.cs @@ -78,13 +78,10 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Https.Internal _options = options; _logger = loggerFactory?.CreateLogger(); } - public Task OnConnectionAsync(ConnectionContext context) + public async Task OnConnectionAsync(ConnectionContext context) { - return Task.Run(() => InnerOnConnectionAsync(context)); - } + await Task.Yield(); - private async Task InnerOnConnectionAsync(ConnectionContext context) - { bool certificateRequired; var feature = new Core.Internal.TlsConnectionFeature(); context.Features.Set(feature);