aboutsummaryrefslogtreecommitdiff
path: root/forged/internal/server/server.go
diff options
context:
space:
mode:
authorRunxi Yu <me@runxiyu.org>2025-08-17 04:20:09 +0800
committerRunxi Yu <me@runxiyu.org>2025-08-17 04:20:09 +0800
commit3f08901e844eda6c67b44e869c08ef9dc11265e4 (patch)
tree08dc84c18eb89df26845f9b2861a03391d1c5249 /forged/internal/server/server.go
parentFix potential goroutine leak from multi-serverpart errors (diff)
downloadforge-3f08901e844eda6c67b44e869c08ef9dc11265e4.tar.gz
forge-3f08901e844eda6c67b44e869c08ef9dc11265e4.tar.zst
forge-3f08901e844eda6c67b44e869c08ef9dc11265e4.zip
Fix a few other goroutine leaks with contexts
Diffstat (limited to 'forged/internal/server/server.go')
-rw-r--r--forged/internal/server/server.go48
1 files changed, 20 insertions, 28 deletions
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:
+ }
}
}()