mirror of
https://github.com/tgstation/tgstation-server.git
synced 2026-08-29 08:00:19 +01:00
Fix TaskExtensions.WithToken
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user