From cf77999a3b6bdb9d861ca7bf157b1264d67f3130 Mon Sep 17 00:00:00 2001 From: Kahbazi <A.Kahbazi@gmail.com> Date: Thu, 16 Jul 2020 19:46:39 +0430 Subject: [PATCH] Dispost CancellationTokenSource in WebHostExtensions (#23969) --- .../Hosting/ref/Microsoft.AspNetCore.Hosting.netcoreapp.cs | 1 + src/Hosting/Hosting/src/WebHostExtensions.cs | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Hosting/Hosting/ref/Microsoft.AspNetCore.Hosting.netcoreapp.cs b/src/Hosting/Hosting/ref/Microsoft.AspNetCore.Hosting.netcoreapp.cs index b87c115dead..0ed621abe17 100644 --- a/src/Hosting/Hosting/ref/Microsoft.AspNetCore.Hosting.netcoreapp.cs +++ b/src/Hosting/Hosting/ref/Microsoft.AspNetCore.Hosting.netcoreapp.cs @@ -50,6 +50,7 @@ namespace Microsoft.AspNetCore.Hosting public static void Run(this Microsoft.AspNetCore.Hosting.IWebHost host) { } [System.Diagnostics.DebuggerStepThroughAttribute] public static System.Threading.Tasks.Task RunAsync(this Microsoft.AspNetCore.Hosting.IWebHost host, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) { throw null; } + [System.Diagnostics.DebuggerStepThroughAttribute] public static System.Threading.Tasks.Task StopAsync(this Microsoft.AspNetCore.Hosting.IWebHost host, System.TimeSpan timeout) { throw null; } public static void WaitForShutdown(this Microsoft.AspNetCore.Hosting.IWebHost host) { } [System.Diagnostics.DebuggerStepThroughAttribute] diff --git a/src/Hosting/Hosting/src/WebHostExtensions.cs b/src/Hosting/Hosting/src/WebHostExtensions.cs index b1b317272bc..fe77b134432 100644 --- a/src/Hosting/Hosting/src/WebHostExtensions.cs +++ b/src/Hosting/Hosting/src/WebHostExtensions.cs @@ -19,9 +19,10 @@ namespace Microsoft.AspNetCore.Hosting /// <param name="timeout">The timeout for stopping gracefully. Once expired the /// server may terminate any remaining active connections.</param> /// <returns>A <see cref="Task"/> that completes when the <see cref="IWebHost"/> stops.</returns> - public static Task StopAsync(this IWebHost host, TimeSpan timeout) + public static async Task StopAsync(this IWebHost host, TimeSpan timeout) { - return host.StopAsync(new CancellationTokenSource(timeout).Token); + using var cts = new CancellationTokenSource(timeout); + await host.StopAsync(cts.Token); } /// <summary> -- GitLab