Merge pull request #2437 from Haselnussbomber/fix-NotifyPluginsForStateChange
Some checks failed
Tag Build / Tag Build (push) Successful in 4s
Build Dalamud / Build on Windows (push) Has been cancelled
Build Dalamud / Check API Compatibility (push) Has been cancelled
Build Dalamud / Deploy dalamud-distrib staging (push) Has been cancelled

Lock plugin list in NotifyPluginsForStateChange
This commit is contained in:
goat 2025-10-22 21:50:40 +02:00 committed by GitHub
commit 7a45c0d661
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1299,13 +1299,16 @@ internal class PluginManager : IInternalDisposableService
/// <param name="affectedInternalNames">The affected plugins.</param>
public void NotifyPluginsForStateChange(PluginListInvalidationKind kind, IEnumerable<string> 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));
}
}
}