fix: waitForNewSession spam

This commit is contained in:
zarazaex69
2026-05-03 10:33:40 +03:00
parent a4e6079148
commit fce4d12fbc

View File

@@ -282,7 +282,7 @@ func (s *Server) serve(ctx context.Context) {
default:
}
logger.Infof("AcceptStream returned %v — waiting for new session", err)
time.Sleep(100 * time.Millisecond)
s.waitForNewSession(ctx, sess)
continue
}
@@ -294,6 +294,22 @@ func (s *Server) serve(ctx context.Context) {
}
}
func (s *Server) waitForNewSession(ctx context.Context, dead *smux.Session) {
for {
select {
case <-ctx.Done():
return
case <-time.After(50 * time.Millisecond):
}
s.sessMu.RLock()
current := s.session
s.sessMu.RUnlock()
if current != dead {
return
}
}
}
func (s *Server) shutdown() {
s.sessMu.Lock()
if s.session != nil {