Fix TaskExtensions.WithToken

This commit is contained in:
Jordan
2023-06-19 11:23:54 -04:00
parent c406695715
commit a95cba1225
2 changed files with 6 additions and 2 deletions
@@ -50,8 +50,12 @@ namespace Tgstation.Server.Host.Extensions
ArgumentNullException.ThrowIfNull(task);
var cancelTcs = new TaskCompletionSource();
Task completedTask;
using (cancellationToken.Register(() => cancelTcs.SetCanceled(cancellationToken)))
await Task.WhenAny(task, cancelTcs.Task);
completedTask = await Task.WhenAny(task, cancelTcs.Task);
if (completedTask != task)
await cancelTcs.Task;
return await task;
}
@@ -41,7 +41,7 @@ namespace Tgstation.Server.Host.Jobs.Tests
using var handler = new JobHandler(TestJob);
await Assert.ThrowsExceptionAsync<InvalidOperationException>(() => handler.Wait(cts.Token));
handler.Start();
await Assert.ThrowsExceptionAsync<OperationCanceledException>(() => handler.Wait(cts.Token));
await Assert.ThrowsExceptionAsync<TaskCanceledException>(() => handler.Wait(cts.Token));
tcs.SetResult();
await handler.Wait(default);
}