From 85d21a7f88ffdfdf8c47cd0ef740136f4b439553 Mon Sep 17 00:00:00 2001 From: Dan Markhasin Date: Mon, 10 Jul 2023 11:52:31 +0300 Subject: [PATCH] align handling of graceful shutdown signals (#102) * align handling of graceful shutdown signals * lint * added unit test --------- Co-authored-by: dan.markhasin --- atreugo_unix.go | 4 ++++ atreugo_unix_test.go | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/atreugo_unix.go b/atreugo_unix.go index 7431ae0..9728238 100644 --- a/atreugo_unix.go +++ b/atreugo_unix.go @@ -21,6 +21,10 @@ func (s *Atreugo) ServeGracefully(ln net.Listener) error { listenErr <- s.Serve(ln) }() + if s.cfg.GracefulShutdown && len(s.cfg.GracefulShutdownSignals) == 0 { + s.cfg.GracefulShutdownSignals = append(s.cfg.GracefulShutdownSignals, defaultGracefulShutdownSignals...) + } + osSignals := make(chan os.Signal, 1) signal.Notify(osSignals, s.cfg.GracefulShutdownSignals...) diff --git a/atreugo_unix_test.go b/atreugo_unix_test.go index bfd928e..d880156 100644 --- a/atreugo_unix_test.go +++ b/atreugo_unix_test.go @@ -101,6 +101,10 @@ func TestAtreugo_ServeGracefully(t *testing.T) { // nolint:funlen t.Errorf("Config.GracefulShutdown = %v, want %v", cfg.GracefulShutdown, true) } + if len(s.cfg.GracefulShutdownSignals) == 0 { + t.Errorf("Config.GracefulShutdownSignals is empty, want %v", defaultGracefulShutdownSignals) + } + lnAddr := ln.Addr().String() if s.cfg.Addr != lnAddr { t.Errorf("Atreugo.Config.Addr = %s, want %s", s.cfg.Addr, lnAddr)