Pass in CancellationToken to (Try)SetCanceled

This commit is contained in:
Jordan
2023-06-19 05:16:44 -04:00
parent 41a805648f
commit 0dca581ef2
6 changed files with 6 additions and 10 deletions
@@ -646,7 +646,7 @@ namespace Tgstation.Server.Host.Components.Chat.Providers
Task<Result> localGatewayTask;
gatewayReadyTcs = new TaskCompletionSource();
using var gatewayConnectionAbortRegistration = cancellationToken.Register(() => gatewayReadyTcs.TrySetCanceled());
using var gatewayConnectionAbortRegistration = cancellationToken.Register(() => gatewayReadyTcs.TrySetCanceled(cancellationToken));
gatewayCancellationToken.Register(() => Logger.LogTrace("Stopping gateway client..."));
// reconnects keep happening until we stop or it faults, our auto-reconnector will handle the latter
@@ -407,7 +407,7 @@ namespace Tgstation.Server.Host.Components.Chat.Providers
await NonBlockingListen(cancellationToken);
var nickCheckCompleteTcs = new TaskCompletionSource();
using (cancellationToken.Register(() => nickCheckCompleteTcs.TrySetCanceled()))
using (cancellationToken.Register(() => nickCheckCompleteTcs.TrySetCanceled(cancellationToken)))
{
listenTask = Task.Factory.StartNew(
async () =>
@@ -862,20 +862,17 @@ namespace Tgstation.Server.Host.Components.Watchdog
cancellationToken);
// cancel waiting if requested
var cancelTcs = new TaskCompletionSource();
var toWaitOn = Task.WhenAny(
activeServerLifetime,
activeServerReboot,
activeServerStartup,
healthCheck,
newDmbAvailable,
cancelTcs.Task,
activeLaunchParametersChanged,
serverPrimed);
// wait for something to happen
using (cancellationToken.Register(() => cancelTcs.SetCanceled()))
await toWaitOn;
await toWaitOn.WithToken(cancellationToken);
cancellationToken.ThrowIfCancellationRequested();
Logger.LogTrace("Monitor activated");
@@ -50,9 +50,8 @@ namespace Tgstation.Server.Host.Extensions
ArgumentNullException.ThrowIfNull(task);
var cancelTcs = new TaskCompletionSource();
using (cancellationToken.Register(() => cancelTcs.SetCanceled()))
using (cancellationToken.Register(() => cancelTcs.SetCanceled(cancellationToken)))
await Task.WhenAny(task, cancelTcs.Task);
cancellationToken.ThrowIfCancellationRequested();
return await task;
}
@@ -69,7 +69,7 @@ namespace Tgstation.Server.Host.Transfer
/// <inheritdoc />
public async Task<Stream> GetResult(CancellationToken cancellationToken)
{
using (cancellationToken.Register(() => streamTcs.TrySetCanceled()))
using (cancellationToken.Register(() => streamTcs.TrySetCanceled(cancellationToken)))
using (ticketExpiryCts.Token.Register(() => streamTcs.TrySetResult(null)))
return await streamTcs.Task;
}
@@ -115,7 +115,7 @@ namespace Tgstation.Server.Host.IO.Tests
.Setup(x => x.SendAsync(request, HttpCompletionOption.ResponseHeadersRead, It.IsAny<CancellationToken>()))
.Returns<HttpRequestMessage, HttpCompletionOption, CancellationToken>((request, option, cancellationToken) =>
{
cancellationToken.Register(() => tcs.TrySetCanceled());
cancellationToken.Register(() => tcs.TrySetCanceled(cancellationToken));
return tcs.Task;
})
.Verifiable();