From 2cfc8092adac3caa4b3a116ae2e63c3a4941bbc6 Mon Sep 17 00:00:00 2001 From: Sergei Maklagin Date: Thu, 29 May 2025 22:48:15 +0300 Subject: [PATCH] Fix endpoint manager locks --- adapter/endpoint/manager.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/adapter/endpoint/manager.go b/adapter/endpoint/manager.go index 5a633bee..00f8ea3e 100644 --- a/adapter/endpoint/manager.go +++ b/adapter/endpoint/manager.go @@ -35,7 +35,6 @@ func NewManager(logger log.ContextLogger, registry adapter.EndpointRegistry) *Ma func (m *Manager) Start(stage adapter.StartStage) error { m.access.Lock() - defer m.access.Unlock() if m.started && m.stage >= stage { panic("already started") } @@ -43,9 +42,12 @@ func (m *Manager) Start(stage adapter.StartStage) error { m.stage = stage if stage == adapter.StartStateStart { // started with outbound manager + m.access.Unlock() return nil } - for _, endpoint := range m.endpoints { + endpoints := m.endpoints + m.access.Unlock() + for _, endpoint := range endpoints { err := adapter.LegacyStart(endpoint, stage) if err != nil { return E.Cause(err, stage, " endpoint/", endpoint.Type(), "[", endpoint.Tag(), "]")