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

@ -44,7 +44,9 @@ internal static class ServiceManager
private static readonly List<Type> LoadedServices = new();
#endif
private static readonly TaskCompletionSource BlockingServicesLoadedTaskCompletionSource = new();
private static readonly TaskCompletionSource BlockingServicesLoadedTaskCompletionSource =
new(TaskCreationOptions.RunContinuationsAsynchronously);
private static readonly CancellationTokenSource UnloadCancellationTokenSource = new();
private static ManualResetEvent unloadResetEvent = new(false);

View file

@ -332,7 +332,7 @@ internal static class Service<T> where T : IServiceType
break;
}
instanceTcs = new TaskCompletionSource<T>();
instanceTcs = new(TaskCreationOptions.RunContinuationsAsynchronously);
instanceTcs.SetException(new UnloadedException());
}