From f9af67d45e3f061767ba2f2a0ed2f5d8f7988eeb Mon Sep 17 00:00:00 2001 From: Deluan Date: Thu, 5 Mar 2026 17:08:29 -0500 Subject: [PATCH] refactor(plugins): streamline plugin loading and synchronization logic Signed-off-by: Deluan --- plugins/manager_loader.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/manager_loader.go b/plugins/manager_loader.go index 895b944fb..b2e4e520b 100644 --- a/plugins/manager_loader.go +++ b/plugins/manager_loader.go @@ -373,8 +373,7 @@ func (m *Manager) loadPluginWithConfig(p *model.Plugin) error { return fmt.Errorf("manifest validation: %w", err) } - m.mu.Lock() - m.plugins[p.ID] = &plugin{ + loadedPlugin := &plugin{ name: p.ID, path: p.Path, manifest: pkg.Manifest, @@ -386,13 +385,14 @@ func (m *Manager) loadPluginWithConfig(p *model.Plugin) error { allUsers: p.AllUsers, libraries: newLibraryAccess(allowedLibraries, p.AllLibraries), } + m.mu.Lock() + m.plugins[p.ID] = loadedPlugin m.mu.Unlock() // Call plugin init function callPluginInit(ctx, m.plugins[p.ID]) // Start PlaylistProvider syncer if capability is detected - loadedPlugin := m.plugins[p.ID] if hasCapability(loadedPlugin.capabilities, CapabilityPlaylistProvider) { syncer := newPlaylistSyncer(m.ctx, p.ID, loadedPlugin, m.ds, m.matcher) loadedPlugin.closers = append(loadedPlugin.closers, syncer)