From 6d78b961419fc35c4709abb283a2f633b83d5c1e Mon Sep 17 00:00:00 2001 From: Bogdan Date: Tue, 28 Apr 2026 23:03:21 +0300 Subject: [PATCH] Enable Call async methods when in an async method --- .editorconfig | 2 ++ src/NzbDrone.Common/Http/HappyEyeballs/HappyEyeballs.cs | 6 ++++++ src/NzbDrone.Integration.Test/IntegrationTestBase.cs | 9 ++++----- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/.editorconfig b/.editorconfig index 6d6c3a13f..1b2b58fd6 100644 --- a/.editorconfig +++ b/.editorconfig @@ -52,6 +52,8 @@ dotnet_diagnostic.IDE0005.severity = error dotnet_diagnostic.IDE0007.severity = error # Inline variable declaration dotnet_diagnostic.IDE0018.severity = error +# Call async methods when in an async method +dotnet_diagnostic.CA1849.severity = warning # Stylecop Rules dotnet_diagnostic.SA0001.severity = none diff --git a/src/NzbDrone.Common/Http/HappyEyeballs/HappyEyeballs.cs b/src/NzbDrone.Common/Http/HappyEyeballs/HappyEyeballs.cs index 77ba11f9e..58ea2a296 100644 --- a/src/NzbDrone.Common/Http/HappyEyeballs/HappyEyeballs.cs +++ b/src/NzbDrone.Common/Http/HappyEyeballs/HappyEyeballs.cs @@ -131,7 +131,9 @@ private async Task ParallelTask( await delayCts.CancelAsync().ConfigureAwait(false); await timeoutTask.ConfigureAwait(ConfigureAwaitOptions.SuppressThrowing); +#pragma warning disable CA1849 completedTask = whenAnyDone.Result; +#pragma warning restore CA1849 } else { @@ -165,7 +167,9 @@ private async Task ParallelTask( { if (task.IsCompletedSuccessfully) { +#pragma warning disable CA1849 task.Result.Dispose(); +#pragma warning restore CA1849 } } @@ -176,6 +180,8 @@ private async Task ParallelTask( throw new AggregateException(innerExceptions); } +#pragma warning disable CA1849 return successTask.Result; +#pragma warning restore CA1849 } } diff --git a/src/NzbDrone.Integration.Test/IntegrationTestBase.cs b/src/NzbDrone.Integration.Test/IntegrationTestBase.cs index c9786bdd3..46a18045c 100644 --- a/src/NzbDrone.Integration.Test/IntegrationTestBase.cs +++ b/src/NzbDrone.Integration.Test/IntegrationTestBase.cs @@ -179,10 +179,9 @@ protected async Task ConnectSignalR() var cts = new CancellationTokenSource(); - _signalrConnection.Closed += e => + _signalrConnection.Closed += async _ => { - cts.Cancel(); - return Task.CompletedTask; + await cts.CancelAsync(); }; _signalrConnection.On("receiveMessage", (message) => @@ -199,7 +198,7 @@ protected async Task ConnectSignalR() { Console.WriteLine("Connecting to signalR"); - await _signalrConnection.StartAsync(); + await _signalrConnection.StartAsync(cts.Token); connected = true; break; } @@ -212,7 +211,7 @@ protected async Task ConnectSignalR() } retryCount++; - Thread.Sleep(200); + await Task.Delay(200, cts.Token); } }