From c0da716708bc35cf9a1660e61e7690ba8c3bcedc Mon Sep 17 00:00:00 2001 From: Dominion Date: Mon, 10 Apr 2023 13:44:19 -0400 Subject: [PATCH] TaskCompletionSource cleanup --- .../Components/Byond/ByondManager.cs | 4 +-- .../Components/Chat/ChatManager.cs | 10 +++---- .../Chat/Providers/DiscordProvider.cs | 8 +++--- .../Components/Chat/Providers/IrcProvider.cs | 4 +-- .../Components/Chat/Providers/Provider.cs | 22 +++++++-------- .../Components/Deployment/DmbFactory.cs | 10 +++---- .../Components/InstanceContainer.cs | 8 +++--- .../Components/InstanceManager.cs | 8 +++--- .../Components/Session/SessionController.cs | 28 +++++++++---------- .../Components/Watchdog/WatchdogBase.cs | 12 ++++---- src/Tgstation.Server.Host/Core/Application.cs | 5 +--- .../Extensions/TaskExtensions.cs | 9 ++++-- src/Tgstation.Server.Host/Jobs/JobManager.cs | 8 +++--- .../Setup/SetupWizard.cs | 8 +++--- .../Swarm/SwarmService.cs | 10 +++---- .../Transfer/FileUploadProvider.cs | 10 +++---- .../Program.cs | 4 +-- .../Jobs/TestJobHandler.cs | 8 +++--- 18 files changed, 89 insertions(+), 87 deletions(-) diff --git a/src/Tgstation.Server.Host/Components/Byond/ByondManager.cs b/src/Tgstation.Server.Host/Components/Byond/ByondManager.cs index 76f5ebce25..65606da711 100644 --- a/src/Tgstation.Server.Host/Components/Byond/ByondManager.cs +++ b/src/Tgstation.Server.Host/Components/Byond/ByondManager.cs @@ -276,7 +276,7 @@ namespace Tgstation.Server.Host.Components.Byond /// A representing the running operation. async Task InstallVersion(Version version, Stream customVersionStream, CancellationToken cancellationToken) { - var ourTcs = new TaskCompletionSource(); + var ourTcs = new TaskCompletionSource(); Task inProgressTask; string versionKey; bool installed; @@ -370,7 +370,7 @@ namespace Tgstation.Server.Host.Components.Byond throw; } - ourTcs.SetResult(null); + ourTcs.SetResult(); } catch (Exception e) { diff --git a/src/Tgstation.Server.Host/Components/Chat/ChatManager.cs b/src/Tgstation.Server.Host/Components/Chat/ChatManager.cs index d57a900ef1..252037de3d 100644 --- a/src/Tgstation.Server.Host/Components/Chat/ChatManager.cs +++ b/src/Tgstation.Server.Host/Components/Chat/ChatManager.cs @@ -109,9 +109,9 @@ namespace Tgstation.Server.Host.Components.Chat Task messageSendTask; /// - /// The that completes when s change. + /// The that completes when s change. /// - TaskCompletionSource connectionsUpdated; + TaskCompletionSource connectionsUpdated; /// /// Used for remapping s. @@ -157,7 +157,7 @@ namespace Tgstation.Server.Host.Components.Chat mappedChannels = new Dictionary(); trackingContexts = new List(); handlerCts = new CancellationTokenSource(); - connectionsUpdated = new TaskCompletionSource(); + connectionsUpdated = new TaskCompletionSource(); messageSendTask = Task.CompletedTask; channelIdCounter = 1; @@ -293,8 +293,8 @@ namespace Tgstation.Server.Host.Components.Chat { // same thread shennanigans var oldOne = connectionsUpdated; - connectionsUpdated = new TaskCompletionSource(); - oldOne.SetResult(null); + connectionsUpdated = new TaskCompletionSource(); + oldOne.SetResult(); } var reconnectionUpdateTask = provider?.SetReconnectInterval( diff --git a/src/Tgstation.Server.Host/Components/Chat/Providers/DiscordProvider.cs b/src/Tgstation.Server.Host/Components/Chat/Providers/DiscordProvider.cs index dfddd9d326..336d52df48 100644 --- a/src/Tgstation.Server.Host/Components/Chat/Providers/DiscordProvider.cs +++ b/src/Tgstation.Server.Host/Components/Chat/Providers/DiscordProvider.cs @@ -88,9 +88,9 @@ namespace Tgstation.Server.Host.Components.Chat.Providers CancellationTokenSource gatewayCts; /// - /// The for the initial gateway connection event. + /// The for the initial gateway connection event. /// - TaskCompletionSource gatewayReadyTcs; + TaskCompletionSource gatewayReadyTcs; /// /// The representing the lifetime of the client. @@ -559,7 +559,7 @@ namespace Tgstation.Server.Host.Components.Chat.Providers throw new ArgumentNullException(nameof(readyEvent)); Logger.LogTrace("Gatway ready. Version: {version}", readyEvent.Version); - gatewayReadyTcs?.TrySetResult(null); + gatewayReadyTcs?.TrySetResult(); return Task.FromResult(Result.FromSuccess()); } @@ -580,7 +580,7 @@ namespace Tgstation.Server.Host.Components.Chat.Providers var gatewayClient = serviceProvider.GetRequiredService(); Task localGatewayTask; - gatewayReadyTcs = new TaskCompletionSource(); + gatewayReadyTcs = new TaskCompletionSource(); using var gatewayConnectionAbortRegistration = cancellationToken.Register(() => gatewayReadyTcs.TrySetCanceled()); gatewayCancellationToken.Register(() => Logger.LogTrace("Stopping gateway client...")); diff --git a/src/Tgstation.Server.Host/Components/Chat/Providers/IrcProvider.cs b/src/Tgstation.Server.Host/Components/Chat/Providers/IrcProvider.cs index 32eeb51dac..01badafabf 100644 --- a/src/Tgstation.Server.Host/Components/Chat/Providers/IrcProvider.cs +++ b/src/Tgstation.Server.Host/Components/Chat/Providers/IrcProvider.cs @@ -380,7 +380,7 @@ namespace Tgstation.Server.Host.Components.Chat.Providers Logger.LogTrace("Processing initial messages..."); await NonBlockingListen(cancellationToken); - var nickCheckCompleteTcs = new TaskCompletionSource(); + var nickCheckCompleteTcs = new TaskCompletionSource(); using (cancellationToken.Register(() => nickCheckCompleteTcs.TrySetCanceled())) { listenTask = Task.Factory.StartNew( @@ -399,7 +399,7 @@ namespace Tgstation.Server.Host.Components.Chat.Providers client.RfcNick(nickname); } - nickCheckCompleteTcs.TrySetResult(null); + nickCheckCompleteTcs.TrySetResult(); Logger.LogTrace("Starting blocking listen..."); try diff --git a/src/Tgstation.Server.Host/Components/Chat/Providers/Provider.cs b/src/Tgstation.Server.Host/Components/Chat/Providers/Provider.cs index eb7ac3ca35..0422d24e51 100644 --- a/src/Tgstation.Server.Host/Components/Chat/Providers/Provider.cs +++ b/src/Tgstation.Server.Host/Components/Chat/Providers/Provider.cs @@ -40,9 +40,9 @@ namespace Tgstation.Server.Host.Components.Chat.Providers readonly Queue messageQueue; /// - /// The backing for . + /// The backing for . /// - readonly TaskCompletionSource initialConnectionTcs; + readonly TaskCompletionSource initialConnectionTcs; /// /// Used for synchronizing access to and . @@ -50,9 +50,9 @@ namespace Tgstation.Server.Host.Components.Chat.Providers readonly object reconnectTaskLock; /// - /// that completes while isn't empty. + /// that completes while isn't empty. /// - TaskCompletionSource nextMessage; + TaskCompletionSource nextMessage; /// /// The auto reconnect . @@ -77,8 +77,8 @@ namespace Tgstation.Server.Host.Components.Chat.Providers ChatBot = chatBot ?? throw new ArgumentNullException(nameof(chatBot)); messageQueue = new Queue(); - nextMessage = new TaskCompletionSource(); - initialConnectionTcs = new TaskCompletionSource(); + nextMessage = new TaskCompletionSource(); + initialConnectionTcs = new TaskCompletionSource(); reconnectTaskLock = new object(); logger.LogTrace("Created."); @@ -115,7 +115,7 @@ namespace Tgstation.Server.Host.Components.Chat.Providers } /// - public void InitialMappingComplete() => initialConnectionTcs.TrySetResult(null); + public void InitialMappingComplete() => initialConnectionTcs.TrySetResult(); /// public async Task>> MapChannels(IEnumerable channels, CancellationToken cancellationToken) @@ -126,7 +126,7 @@ namespace Tgstation.Server.Host.Components.Chat.Providers } catch { - initialConnectionTcs.TrySetResult(null); + initialConnectionTcs.TrySetResult(); throw; } } @@ -142,7 +142,7 @@ namespace Tgstation.Server.Host.Components.Chat.Providers { var result = messageQueue.Dequeue(); if (messageQueue.Count == 0) - nextMessage = new TaskCompletionSource(); + nextMessage = new TaskCompletionSource(); return result; } } @@ -215,7 +215,7 @@ namespace Tgstation.Server.Host.Components.Chat.Providers lock (messageQueue) { messageQueue.Enqueue(message); - nextMessage.TrySetResult(null); + nextMessage.TrySetResult(); } } @@ -290,7 +290,7 @@ namespace Tgstation.Server.Host.Components.Chat.Providers } catch { - initialConnectionTcs.TrySetResult(null); + initialConnectionTcs.TrySetResult(); throw; } }, diff --git a/src/Tgstation.Server.Host/Components/Deployment/DmbFactory.cs b/src/Tgstation.Server.Host/Components/Deployment/DmbFactory.cs index 67e59737cb..1e01982bee 100644 --- a/src/Tgstation.Server.Host/Components/Deployment/DmbFactory.cs +++ b/src/Tgstation.Server.Host/Components/Deployment/DmbFactory.cs @@ -80,9 +80,9 @@ namespace Tgstation.Server.Host.Components.Deployment Task cleanupTask; /// - /// resulting in the latest yet to exist. + /// resulting in the latest yet to exist. /// - TaskCompletionSource newerDmbTcs; + TaskCompletionSource newerDmbTcs; /// /// The latest . @@ -119,7 +119,7 @@ namespace Tgstation.Server.Host.Components.Deployment this.metadata = metadata ?? throw new ArgumentNullException(nameof(metadata)); cleanupTask = Task.CompletedTask; - newerDmbTcs = new TaskCompletionSource(); + newerDmbTcs = new TaskCompletionSource(); cleanupCts = new CancellationTokenSource(); jobLockCounts = new Dictionary(); } @@ -156,8 +156,8 @@ namespace Tgstation.Server.Host.Components.Deployment // Oh god dammit var temp = newerDmbTcs; - newerDmbTcs = new TaskCompletionSource(); - temp.SetResult(nextDmbProvider); + newerDmbTcs = new TaskCompletionSource(); + temp.SetResult(); } } diff --git a/src/Tgstation.Server.Host/Components/InstanceContainer.cs b/src/Tgstation.Server.Host/Components/InstanceContainer.cs index 9cb320cce5..6a8c49500e 100644 --- a/src/Tgstation.Server.Host/Components/InstanceContainer.cs +++ b/src/Tgstation.Server.Host/Components/InstanceContainer.cs @@ -35,9 +35,9 @@ namespace Tgstation.Server.Host.Components readonly object referenceCountLock; /// - /// Backing for . + /// Backing for . /// - TaskCompletionSource onZeroReferencesTcs; + TaskCompletionSource onZeroReferencesTcs; /// /// Count of active s. @@ -64,7 +64,7 @@ namespace Tgstation.Server.Host.Components lock (referenceCountLock) { if (referenceCount++ == 0) - onZeroReferencesTcs = new TaskCompletionSource(); + onZeroReferencesTcs = new TaskCompletionSource(); try { @@ -72,7 +72,7 @@ namespace Tgstation.Server.Host.Components { lock (referenceCountLock) if (--referenceCount == 0) - onZeroReferencesTcs.SetResult(null); + onZeroReferencesTcs.SetResult(); }); } catch diff --git a/src/Tgstation.Server.Host/Components/InstanceManager.cs b/src/Tgstation.Server.Host/Components/InstanceManager.cs index ac0b1d230b..95c7546a9d 100644 --- a/src/Tgstation.Server.Host/Components/InstanceManager.cs +++ b/src/Tgstation.Server.Host/Components/InstanceManager.cs @@ -117,9 +117,9 @@ namespace Tgstation.Server.Host.Components readonly SwarmConfiguration swarmConfiguration; /// - /// The for . + /// The for . /// - readonly TaskCompletionSource readyTcs; + readonly TaskCompletionSource readyTcs; /// /// If the has been 'd. @@ -173,7 +173,7 @@ namespace Tgstation.Server.Host.Components instances = new Dictionary(); bridgeHandlers = new Dictionary(); - readyTcs = new TaskCompletionSource(); + readyTcs = new TaskCompletionSource(); instanceStateChangeSemaphore = new SemaphoreSlim(1); } @@ -430,7 +430,7 @@ namespace Tgstation.Server.Host.Components jobManager.Activate(); logger.LogInformation("Server ready!"); - readyTcs.SetResult(null); + readyTcs.SetResult(); } catch (OperationCanceledException ex) { diff --git a/src/Tgstation.Server.Host/Components/Session/SessionController.cs b/src/Tgstation.Server.Host/Components/Session/SessionController.cs index 0f76b5993f..adcc944cd3 100644 --- a/src/Tgstation.Server.Host/Components/Session/SessionController.cs +++ b/src/Tgstation.Server.Host/Components/Session/SessionController.cs @@ -76,9 +76,9 @@ namespace Tgstation.Server.Host.Components.Session public ReattachInformation ReattachInformation { get; } /// - /// The that completes when DD makes it's first bridge request. + /// The that completes when DD makes it's first bridge request. /// - readonly TaskCompletionSource initialBridgeRequestTcs; + readonly TaskCompletionSource initialBridgeRequestTcs; /// /// The metadata. @@ -141,14 +141,14 @@ namespace Tgstation.Server.Host.Components.Session ushort? nextPort; /// - /// The that completes when DD tells us about a reboot. + /// The that completes when DD tells us about a reboot. /// - TaskCompletionSource rebootTcs; + TaskCompletionSource rebootTcs; /// - /// The that completes when DD tells us it's primed. + /// The that completes when DD tells us it's primed. /// - TaskCompletionSource primeTcs; + TaskCompletionSource primeTcs; /// /// If we know DreamDaemon currently has it's port closed. @@ -219,9 +219,9 @@ namespace Tgstation.Server.Host.Components.Session apiValidationStatus = ApiValidationStatus.NeverValidated; released = false; - rebootTcs = new TaskCompletionSource(); - primeTcs = new TaskCompletionSource(); - initialBridgeRequestTcs = new TaskCompletionSource(); + rebootTcs = new TaskCompletionSource(); + primeTcs = new TaskCompletionSource(); + initialBridgeRequestTcs = new TaskCompletionSource(); reattachTopicCts = new CancellationTokenSource(); synchronizationLock = new object(); @@ -298,7 +298,7 @@ namespace Tgstation.Server.Host.Components.Session using (LogContext.PushProperty("Instance", metadata.Id)) { logger.LogTrace("Handling bridge request..."); - initialBridgeRequestTcs.TrySetResult(null); + initialBridgeRequestTcs.TrySetResult(); var response = new BridgeResponse(); switch (parameters.CommandType) @@ -333,8 +333,8 @@ namespace Tgstation.Server.Host.Components.Session break; case BridgeCommandType.Prime: var oldPrimeTcs = primeTcs; - primeTcs = new TaskCompletionSource(); - oldPrimeTcs.SetResult(null); + primeTcs = new TaskCompletionSource(); + oldPrimeTcs.SetResult(); break; case BridgeCommandType.Kill: logger.LogInformation("Bridge requested process termination!"); @@ -425,8 +425,8 @@ namespace Tgstation.Server.Host.Components.Session } var oldRebootTcs = rebootTcs; - rebootTcs = new TaskCompletionSource(); - oldRebootTcs.SetResult(null); + rebootTcs = new TaskCompletionSource(); + oldRebootTcs.SetResult(); break; case null: response.ErrorMessage = "Missing commandType!"; diff --git a/src/Tgstation.Server.Host/Components/Watchdog/WatchdogBase.cs b/src/Tgstation.Server.Host/Components/Watchdog/WatchdogBase.cs index 2bbff38173..4d9330aaeb 100644 --- a/src/Tgstation.Server.Host/Components/Watchdog/WatchdogBase.cs +++ b/src/Tgstation.Server.Host/Components/Watchdog/WatchdogBase.cs @@ -57,9 +57,9 @@ namespace Tgstation.Server.Host.Components.Watchdog public abstract RebootState? RebootState { get; } /// - /// that completes when are changed and we are running. + /// that completes when are changed and we are running. /// - protected TaskCompletionSource ActiveParametersUpdated { get; set; } + protected TaskCompletionSource ActiveParametersUpdated { get; set; } /// /// The for the . @@ -220,7 +220,7 @@ namespace Tgstation.Server.Host.Components.Watchdog ActiveLaunchParameters = initialLaunchParameters; releaseServers = false; - ActiveParametersUpdated = new TaskCompletionSource(); + ActiveParametersUpdated = new TaskCompletionSource(); restartRegistration = serverControl.RegisterForRestart(this); try @@ -261,8 +261,8 @@ namespace Tgstation.Server.Host.Components.Watchdog if (match || Status == WatchdogStatus.Offline) return; - ActiveParametersUpdated.TrySetResult(null); // queue an update - ActiveParametersUpdated = new TaskCompletionSource(); + ActiveParametersUpdated.TrySetResult(); // queue an update + ActiveParametersUpdated = new TaskCompletionSource(); } } @@ -872,7 +872,7 @@ namespace Tgstation.Server.Host.Components.Watchdog cancellationToken); // cancel waiting if requested - var cancelTcs = new TaskCompletionSource(); + var cancelTcs = new TaskCompletionSource(); var toWaitOn = Task.WhenAny( activeServerLifetime, activeServerReboot, diff --git a/src/Tgstation.Server.Host/Core/Application.cs b/src/Tgstation.Server.Host/Core/Application.cs index 960e3c3fed..f96b2e5670 100644 --- a/src/Tgstation.Server.Host/Core/Application.cs +++ b/src/Tgstation.Server.Host/Core/Application.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; using System.Globalization; using System.IdentityModel.Tokens.Jwt; using System.Linq; -using System.Threading.Tasks; using Cyberboss.AspNetCore.AsyncInitializer; using Microsoft.AspNetCore.Authentication.JwtBearer; @@ -420,9 +419,7 @@ namespace Tgstation.Server.Host.Core // 503 requests made while the application is starting applicationBuilder.UseAsyncInitialization(async (cancellationToken) => { - var tcs = new TaskCompletionSource(); - using (cancellationToken.Register(() => tcs.SetCanceled())) - await Task.WhenAny(tcs.Task, instanceManager.Ready); + await instanceManager.Ready.WithToken(cancellationToken); }); // suppress OperationCancelledExceptions, they are just aborted HTTP requests diff --git a/src/Tgstation.Server.Host/Extensions/TaskExtensions.cs b/src/Tgstation.Server.Host/Extensions/TaskExtensions.cs index 42cc4d843d..c00389ba89 100644 --- a/src/Tgstation.Server.Host/Extensions/TaskExtensions.cs +++ b/src/Tgstation.Server.Host/Extensions/TaskExtensions.cs @@ -9,6 +9,11 @@ namespace Tgstation.Server.Host.Extensions /// static class TaskExtensions { + /// + /// A that never completes. + /// + private static readonly TaskCompletionSource InfiniteTaskCompletionSource = new TaskCompletionSource(); + /// /// Create a that can be awaited while respecting a given . /// @@ -41,7 +46,7 @@ namespace Tgstation.Server.Host.Extensions if (task == null) throw new ArgumentNullException(nameof(task)); - var cancelTcs = new TaskCompletionSource(); + var cancelTcs = new TaskCompletionSource(); using (cancellationToken.Register(() => cancelTcs.SetCanceled())) await Task.WhenAny(task, cancelTcs.Task); cancellationToken.ThrowIfCancellationRequested(); @@ -53,6 +58,6 @@ namespace Tgstation.Server.Host.Extensions /// Creates a that never completes. /// /// A never ending . - public static Task InfiniteTask() => new TaskCompletionSource().Task; + public static Task InfiniteTask() => InfiniteTaskCompletionSource.Task; } } diff --git a/src/Tgstation.Server.Host/Jobs/JobManager.cs b/src/Tgstation.Server.Host/Jobs/JobManager.cs index 77fd1d1211..f40bdaa13a 100644 --- a/src/Tgstation.Server.Host/Jobs/JobManager.cs +++ b/src/Tgstation.Server.Host/Jobs/JobManager.cs @@ -44,9 +44,9 @@ namespace Tgstation.Server.Host.Jobs readonly Dictionary jobs; /// - /// to delay starting jobs until the server is ready. + /// to delay starting jobs until the server is ready. /// - readonly TaskCompletionSource activationTcs; + readonly TaskCompletionSource activationTcs; /// /// for various operations. @@ -76,7 +76,7 @@ namespace Tgstation.Server.Host.Jobs this.loggerFactory = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory)); this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); jobs = new Dictionary(); - activationTcs = new TaskCompletionSource(); + activationTcs = new TaskCompletionSource(); synchronizationLock = new object(); addCancelLock = new object(); } @@ -268,7 +268,7 @@ namespace Tgstation.Server.Host.Jobs public void Activate() { logger.LogTrace("Activating job manager..."); - activationTcs.SetResult(null); + activationTcs.SetResult(); } /// diff --git a/src/Tgstation.Server.Host/Setup/SetupWizard.cs b/src/Tgstation.Server.Host/Setup/SetupWizard.cs index 53d31df891..b446cd81b2 100644 --- a/src/Tgstation.Server.Host/Setup/SetupWizard.cs +++ b/src/Tgstation.Server.Host/Setup/SetupWizard.cs @@ -80,9 +80,9 @@ namespace Tgstation.Server.Host.Setup readonly GeneralConfiguration generalConfiguration; /// - /// A that will complete when the is reloaded. + /// A that will complete when the is reloaded. /// - TaskCompletionSource reloadTcs; + TaskCompletionSource reloadTcs; /// /// Initializes a new instance of the class. @@ -125,7 +125,7 @@ namespace Tgstation.Server.Host.Setup configuration .GetReloadToken() .RegisterChangeCallback( - state => reloadTcs?.TrySetResult(null), + state => reloadTcs?.TrySetResult(), null); } @@ -942,7 +942,7 @@ namespace Tgstation.Server.Host.Setup var configBytes = Encoding.UTF8.GetBytes(serializedYaml); - reloadTcs = new TaskCompletionSource(); + reloadTcs = new TaskCompletionSource(); try { diff --git a/src/Tgstation.Server.Host/Swarm/SwarmService.cs b/src/Tgstation.Server.Host/Swarm/SwarmService.cs index 7831d29253..f8da1e612f 100644 --- a/src/Tgstation.Server.Host/Swarm/SwarmService.cs +++ b/src/Tgstation.Server.Host/Swarm/SwarmService.cs @@ -142,9 +142,9 @@ namespace Tgstation.Server.Host.Swarm readonly bool swarmController; /// - /// A that is used to force a health check. + /// A that is used to force a health check. /// - TaskCompletionSource forceHealthCheckTcs; + TaskCompletionSource forceHealthCheckTcs; /// /// The that is used to proceed with committing an update. @@ -233,7 +233,7 @@ namespace Tgstation.Server.Host.Swarm if (SwarmMode) { serverHealthCheckCancellationTokenSource = new CancellationTokenSource(); - forceHealthCheckTcs = new TaskCompletionSource(); + forceHealthCheckTcs = new TaskCompletionSource(); if (swarmController) registrationIds = new Dictionary(); @@ -963,8 +963,8 @@ namespace Tgstation.Server.Host.Swarm bool TriggerHealthCheck() { var currentTcs = forceHealthCheckTcs; - forceHealthCheckTcs = new TaskCompletionSource(); - return currentTcs.TrySetResult(null); + forceHealthCheckTcs = new TaskCompletionSource(); + return currentTcs.TrySetResult(); } /// diff --git a/src/Tgstation.Server.Host/Transfer/FileUploadProvider.cs b/src/Tgstation.Server.Host/Transfer/FileUploadProvider.cs index 298c22bc1b..cb4961fcbd 100644 --- a/src/Tgstation.Server.Host/Transfer/FileUploadProvider.cs +++ b/src/Tgstation.Server.Host/Transfer/FileUploadProvider.cs @@ -29,9 +29,9 @@ namespace Tgstation.Server.Host.Transfer readonly TaskCompletionSource taskCompletionSource; /// - /// The that completes in or when is called. + /// The that completes in or when is called. /// - readonly TaskCompletionSource completionTcs; + readonly TaskCompletionSource completionTcs; /// /// If synchronous IO is required. Uses a as a backend if set. @@ -54,7 +54,7 @@ namespace Tgstation.Server.Host.Transfer ticketExpiryCts = new CancellationTokenSource(); taskCompletionSource = new TaskCompletionSource(); - completionTcs = new TaskCompletionSource(); + completionTcs = new TaskCompletionSource(); this.requireSynchronousIO = requireSynchronousIO; } @@ -62,7 +62,7 @@ namespace Tgstation.Server.Host.Transfer public void Dispose() { ticketExpiryCts.Dispose(); - completionTcs.TrySetResult(null); + completionTcs.TrySetResult(); } /// @@ -125,7 +125,7 @@ namespace Tgstation.Server.Host.Transfer throw new InvalidOperationException("ErrorMessage already set!"); this.errorMessage = errorMessage; - completionTcs.TrySetResult(null); + completionTcs.TrySetResult(); } } } diff --git a/tests/Tgstation.Server.Host.Tests.Signals/Program.cs b/tests/Tgstation.Server.Host.Tests.Signals/Program.cs index 95d91ef80d..16aa655fab 100644 --- a/tests/Tgstation.Server.Host.Tests.Signals/Program.cs +++ b/tests/Tgstation.Server.Host.Tests.Signals/Program.cs @@ -18,10 +18,10 @@ namespace Tgstation.Server.Host.Tests.Signals { var mockServerControl = new Mock(); - var tcs = new TaskCompletionSource(); + var tcs = new TaskCompletionSource(); mockServerControl .Setup(x => x.GracefulShutdown()) - .Callback(() => tcs.SetResult(null)) + .Callback(() => tcs.SetResult()) .Returns(Task.CompletedTask); var mockAsyncDelayer = new Mock(); diff --git a/tests/Tgstation.Server.Host.Tests/Jobs/TestJobHandler.cs b/tests/Tgstation.Server.Host.Tests/Jobs/TestJobHandler.cs index d0b129f869..3f8e8663d8 100644 --- a/tests/Tgstation.Server.Host.Tests/Jobs/TestJobHandler.cs +++ b/tests/Tgstation.Server.Host.Tests/Jobs/TestJobHandler.cs @@ -35,14 +35,14 @@ namespace Tgstation.Server.Host.Jobs.Tests //test with a cancelled cts using (var cts = new CancellationTokenSource()) { - var tcs = new TaskCompletionSource(); + var tcs = new TaskCompletionSource(); currentWaitTask = tcs.Task; cts.Cancel(); using var handler = new JobHandler(TestJob); await Assert.ThrowsExceptionAsync(() => handler.Wait(cts.Token)); handler.Start(); await Assert.ThrowsExceptionAsync(() => handler.Wait(cts.Token)); - tcs.SetResult(null); + tcs.SetResult(); await handler.Wait(default); } Assert.IsFalse(cancelled); @@ -65,14 +65,14 @@ namespace Tgstation.Server.Host.Jobs.Tests [TestMethod] public async Task TestCancellation() { - var tcs = new TaskCompletionSource(); + var tcs = new TaskCompletionSource(); currentWaitTask = tcs.Task; cancelled = false; using (var handler = new JobHandler(TestJob)) { handler.Start(); handler.Cancel(); - tcs.SetResult(null); + tcs.SetResult(); await handler.Wait(default); } Assert.IsTrue(cancelled);