Fix Outbound deadlock

This commit is contained in:
Alireza Ahmadi 2025-02-23 01:23:37 +01:00 committed by 世界
parent 09d45fc7cc
commit f7724231e3
No known key found for this signature in database
GPG key ID: CD109927C34A63C4

View file

@ -246,8 +246,6 @@ func (m *Manager) Create(ctx context.Context, router adapter.Router, logger log.
if err != nil {
return err
}
m.access.Lock()
defer m.access.Unlock()
if m.started {
for _, stage := range adapter.ListStartStages {
err = adapter.LegacyStart(outbound, stage)
@ -256,6 +254,8 @@ func (m *Manager) Create(ctx context.Context, router adapter.Router, logger log.
}
}
}
m.access.Lock()
defer m.access.Unlock()
if existsOutbound, loaded := m.outboundByTag[tag]; loaded {
if m.started {
err = common.Close(existsOutbound)