diff options
author | vnugent <public@vaughnnugent.com> | 2024-07-27 20:50:12 -0400 |
---|---|---|
committer | vnugent <public@vaughnnugent.com> | 2024-07-27 20:50:12 -0400 |
commit | d52772c010b10357d194239056d19c0d22d414fe (patch) | |
tree | 1d612391d61eec76a848d871a1e284da022e81e7 /lib/VNLib.Plugins.Extensions.Loading/src/LoadingExtensions.cs | |
parent | c8567e58dc1d4135da1f6cefa6fa66af5fcd7b19 (diff) |
update secrets and remove deprecated and unused apis
Diffstat (limited to 'lib/VNLib.Plugins.Extensions.Loading/src/LoadingExtensions.cs')
-rw-r--r-- | lib/VNLib.Plugins.Extensions.Loading/src/LoadingExtensions.cs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/VNLib.Plugins.Extensions.Loading/src/LoadingExtensions.cs b/lib/VNLib.Plugins.Extensions.Loading/src/LoadingExtensions.cs index 58478d4..ca897e6 100644 --- a/lib/VNLib.Plugins.Extensions.Loading/src/LoadingExtensions.cs +++ b/lib/VNLib.Plugins.Extensions.Loading/src/LoadingExtensions.cs @@ -26,6 +26,7 @@ using System; using System.IO; using System.Linq; using System.Text.Json; +using System.Threading; using System.Reflection; using System.Runtime.Loader; using System.Threading.Tasks; @@ -303,6 +304,12 @@ namespace VNLib.Plugins.Extensions.Loading //Optional delay await Task.Delay(delayMs); + //If plugin unloads during delay, bail + if (plugin.UnloadToken.IsCancellationRequested) + { + return; + } + //Run on ts Task deferred = Task.Run(asyncTask); @@ -357,7 +364,7 @@ namespace VNLib.Plugins.Extensions.Loading static async Task WaitForUnload(PluginBase pb, Action callback) { //Wait for unload as a task on the threadpool to avoid deadlocks - await pb.UnloadToken.WaitHandle.WaitAsync() + await pb.UnloadToken.WaitHandle.NoSpinWaitAsync(Timeout.Infinite) .ConfigureAwait(false); callback(); |