From 87e391958effe453dc3df25587f7d44eb536f822 Mon Sep 17 00:00:00 2001 From: Haselnussbomber Date: Wed, 22 Oct 2025 19:14:29 +0200 Subject: [PATCH] Lock plugin list in NotifyPluginsForStateChange --- Dalamud/Plugin/Internal/PluginManager.cs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/Dalamud/Plugin/Internal/PluginManager.cs b/Dalamud/Plugin/Internal/PluginManager.cs index db803caa8..4dee52b7e 100644 --- a/Dalamud/Plugin/Internal/PluginManager.cs +++ b/Dalamud/Plugin/Internal/PluginManager.cs @@ -1299,13 +1299,16 @@ internal class PluginManager : IInternalDisposableService /// The affected plugins. public void NotifyPluginsForStateChange(PluginListInvalidationKind kind, IEnumerable affectedInternalNames) { - foreach (var installedPlugin in this.installedPluginsList) + lock (this.pluginListLock) { - if (!installedPlugin.IsLoaded || installedPlugin.DalamudInterface == null) - continue; + foreach (var installedPlugin in this.installedPluginsList) + { + if (!installedPlugin.IsLoaded || installedPlugin.DalamudInterface == null) + continue; - installedPlugin.DalamudInterface.NotifyActivePluginsChanged( - new ActivePluginsChangedEventArgs(kind, affectedInternalNames)); + installedPlugin.DalamudInterface.NotifyActivePluginsChanged( + new ActivePluginsChangedEventArgs(kind, affectedInternalNames)); + } } }