@@ -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