Lock plugin list in NotifyPluginsForStateChange

This commit is contained in:
Haselnussbomber 2025-10-22 19:14:29 +02:00
parent 21d4dbec66
commit 87e391958e
No known key found for this signature in database
GPG key ID: BB905BB49E7295D1

View file

@ -1299,13 +1299,16 @@ internal class PluginManager : IInternalDisposableService
/// <param name="affectedInternalNames">The affected plugins.</param> /// <param name="affectedInternalNames">The affected plugins.</param>
public void NotifyPluginsForStateChange(PluginListInvalidationKind kind, IEnumerable<string> affectedInternalNames) public void NotifyPluginsForStateChange(PluginListInvalidationKind kind, IEnumerable<string> affectedInternalNames)
{ {
foreach (var installedPlugin in this.installedPluginsList) lock (this.pluginListLock)
{ {
if (!installedPlugin.IsLoaded || installedPlugin.DalamudInterface == null) foreach (var installedPlugin in this.installedPluginsList)
continue; {
if (!installedPlugin.IsLoaded || installedPlugin.DalamudInterface == null)
continue;
installedPlugin.DalamudInterface.NotifyActivePluginsChanged( installedPlugin.DalamudInterface.NotifyActivePluginsChanged(
new ActivePluginsChangedEventArgs(kind, affectedInternalNames)); new ActivePluginsChangedEventArgs(kind, affectedInternalNames));
}
} }
} }