Skip to content

Commit fc01ddb

Browse files
committed
Save init failed plugins
1 parent 7f797b1 commit fc01ddb

File tree

1 file changed

+4
-5
lines changed

1 file changed

+4
-5
lines changed

Flow.Launcher.Core/Plugin/PluginManager.cs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public static class PluginManager
3131
private static IPublicAPI API => api ??= Ioc.Default.GetRequiredService<IPublicAPI>();
3232

3333
private static List<PluginPair> _allLoadedPlugins;
34+
private static readonly ConcurrentDictionary<string, PluginPair> _initFailedPlugins = [];
3435
private static readonly ConcurrentDictionary<string, PluginPair> _allInitializedPlugins = [];
3536
private static readonly ConcurrentDictionary<string, PluginPair> _globalPlugins = [];
3637
private static readonly ConcurrentDictionary<string, PluginPair> _nonGlobalPlugins = [];
@@ -240,8 +241,6 @@ private static void UpdatePluginDirectory(List<PluginMetadata> metadatas)
240241
/// <returns>return the list of failed to init plugins or null for none</returns>
241242
public static async Task InitializePluginsAsync(IResultUpdateRegister register)
242243
{
243-
var failedPlugins = new ConcurrentQueue<PluginPair>();
244-
245244
var initTasks = _allLoadedPlugins.Select(pair => Task.Run(async () =>
246245
{
247246
try
@@ -266,7 +265,7 @@ public static async Task InitializePluginsAsync(IResultUpdateRegister register)
266265
{
267266
pair.Metadata.Disabled = true;
268267
pair.Metadata.HomeDisabled = true;
269-
failedPlugins.Enqueue(pair);
268+
_initFailedPlugins.TryAdd(pair.Metadata.ID, pair);
270269
API.LogDebug(ClassName, $"Disable plugin <{pair.Metadata.Name}> because init failed");
271270
}
272271

@@ -294,9 +293,9 @@ public static async Task InitializePluginsAsync(IResultUpdateRegister register)
294293

295294
await Task.WhenAll(initTasks);
296295

297-
if (!failedPlugins.IsEmpty)
296+
if (!_initFailedPlugins.IsEmpty)
298297
{
299-
var failed = string.Join(",", failedPlugins.Select(x => x.Metadata.Name));
298+
var failed = string.Join(",", _initFailedPlugins.Values.Select(x => x.Metadata.Name));
300299
API.ShowMsg(
301300
API.GetTranslation("failedToInitializePluginsTitle"),
302301
string.Format(

0 commit comments

Comments
 (0)