Make all TCS RunContinuationsAsynchronously

This commit is contained in:
Soreepeong 2024-07-21 20:49:41 +09:00
parent 856c198934
commit 1be5cd452d
14 changed files with 33 additions and 23 deletions

View file

@ -21,7 +21,7 @@ public static class AsyncUtils
/// <returns>Returns the first task that completes, according to <see cref="Task.IsCompletedSuccessfully"/>.</returns>
public static Task<T> FirstSuccessfulTask<T>(ICollection<Task<T>> tasks)
{
var tcs = new TaskCompletionSource<T>();
var tcs = new TaskCompletionSource<T>(TaskCreationOptions.RunContinuationsAsynchronously);
var remainingTasks = tasks.Count;
foreach (var task in tasks)

View file

@ -238,7 +238,7 @@ internal class DynamicPriorityQueueLoader : IDisposable
params IDisposable?[] disposables)
: base(basis, cancellationToken, disposables)
{
this.taskCompletionSource = new();
this.taskCompletionSource = new(TaskCreationOptions.RunContinuationsAsynchronously);
this.immediateLoadFunction = immediateLoadFunction;
}