From 2e5c5cc8a3f6046d3e4e3a3557f4a75e9bc77b6d Mon Sep 17 00:00:00 2001 From: Wang Yaofu Date: Wed, 15 Jun 2022 16:20:18 +0800 Subject: [PATCH] fix: Duplicate close net.Listener http/server.go: line: 3016 net.Listener is close in func http.Server.Serve() by default. // Some code piece of http.Server.Serve() func (srv *Server) Serve(l net.Listener) error { if fn := testHookServerServe; fn != nil { fn(srv, l) // call hook with unwrapped listener } origListener := l l = &onceCloseListener{Listener: l} // HERE: listener is close by default defer l.Close() --- gin.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/gin.go b/gin.go index f9324299..db8b21a4 100644 --- a/gin.go +++ b/gin.go @@ -518,7 +518,6 @@ func (engine *Engine) RunUnix(file string) (err error) { if err != nil { return } - defer listener.Close() defer os.Remove(file) err = http.Serve(listener, engine.Handler()) @@ -542,7 +541,6 @@ func (engine *Engine) RunFd(fd int) (err error) { if err != nil { return } - defer listener.Close() err = engine.RunListener(listener) return }