From 2345ae0004a73b0efb848719e64136d2e1411a34 Mon Sep 17 00:00:00 2001 From: Cody Soyland Date: Tue, 19 Dec 2017 11:01:36 -0600 Subject: [PATCH] Close HTTP handler gracefully (Fixes #1018) --- server.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/server.go b/server.go index a285d1cca..1c52e0688 100644 --- a/server.go +++ b/server.go @@ -201,8 +201,13 @@ func (s *Server) Open() error { // Serve HTTP. go func() { - err := http.Serve(ln, s.Handler) - if err != nil { + server := &http.Server{Handler: s.Handler} + go func() { + <-s.closing + server.Close() + }() + err := server.Serve(ln) + if err != nil && err.Error() != "http: Server closed" { s.Logger().Printf("HTTP handler terminated with error: %s\n", err) } }()