Skip to content

Commit b9e646a

Browse files
committed
Simplify how server errors are dealt with
If we get an exit signal before we get a non-nil error out of the server, just ignore the error entirely instead of checking it against the shutdown error.
1 parent 771906e commit b9e646a

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

cmd/randomizer-server/main.go

+11-8
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ package main
77

88
import (
99
"context"
10-
"errors"
1110
"flag"
1211
"log/slog"
1312
"net/http"
@@ -57,20 +56,24 @@ func main() {
5756
}))
5857

5958
srv := &http.Server{Addr: *flagAddr, Handler: mux}
59+
srvErr := make(chan error, 1)
6060
go func() {
6161
logger.Info("Starting randomizer server", "addr", *flagAddr)
62-
err := srv.ListenAndServe()
63-
if err != nil && !errors.Is(err, http.ErrServerClosed) {
64-
logger.Error("Failed to start server", "err", err)
65-
os.Exit(1)
66-
}
62+
srvErr <- srv.ListenAndServe()
6763
}()
6864

6965
exit := make(chan os.Signal, 1)
7066
signal.Notify(exit, exitSignals...)
71-
<-exit
72-
signal.Stop(exit)
7367

68+
select {
69+
case err := <-srvErr:
70+
logger.Error("Failed to start server", "err", err)
71+
os.Exit(1)
72+
73+
case <-exit:
74+
}
75+
76+
signal.Stop(exit)
7477
logger.Info("Shutting down; interrupt again to force exit")
7578
err = srv.Shutdown(context.Background())
7679
if err != nil {

0 commit comments

Comments
 (0)