From 3f08901e844eda6c67b44e869c08ef9dc11265e4 Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Sun, 17 Aug 2025 04:20:09 +0800 Subject: Fix a few other goroutine leaks with contexts --- forged/internal/server/server.go | 48 +++++++++++++++++----------------------- 1 file changed, 20 insertions(+), 28 deletions(-) (limited to 'forged/internal/server/server.go') diff --git a/forged/internal/server/server.go b/forged/internal/server/server.go index 867e54f..472df7a 100644 --- a/forged/internal/server/server.go +++ b/forged/internal/server/server.go @@ -62,46 +62,38 @@ func (server *Server) Run(ctx context.Context) (err error) { errCh := make(chan error) go func() { - err := server.hookServer.Run(subCtx) - if err == nil { - panic("hook server should never return nil error") - } - select { - case errCh <- err: - default: + if err := server.hookServer.Run(subCtx); err != nil { + select { + case errCh <- err: + default: + } } }() go func() { - err := server.lmtpServer.Run(subCtx) - if err == nil { - panic("lmtp server should never return nil error") - } - select { - case errCh <- err: - default: + if err := server.lmtpServer.Run(subCtx); err != nil { + select { + case errCh <- err: + default: + } } }() go func() { - err := server.webServer.Run(subCtx) - if err == nil { - panic("web server should never return nil error") - } - select { - case errCh <- err: - default: + if err := server.webServer.Run(subCtx); err != nil { + select { + case errCh <- err: + default: + } } }() go func() { - err := server.sshServer.Run(subCtx) - if err == nil { - panic("ssh server should never return nil error") - } - select { - case errCh <- err: - default: + if err := server.sshServer.Run(subCtx); err != nil { + select { + case errCh <- err: + default: + } } }() -- cgit v1.2.3