From 3fa55b52dd843266a0352b020d2e789aef1184e7 Mon Sep 17 00:00:00 2001 From: Adnan Maolood Date: Sun, 21 Feb 2021 00:41:39 -0500 Subject: [PATCH] server: Use separate context to cancel listeners Use a separate context to cancel listeners so that cancelling the listener does not cancel it's connections. --- server.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server.go b/server.go index 491f516..69a8b22 100644 --- a/server.go +++ b/server.go @@ -205,7 +205,7 @@ func (srv *Server) Serve(ctx context.Context, l net.Listener) error { return ErrServerClosed } - ctx, cancel := context.WithCancel(ctx) + lnctx, cancel := context.WithCancel(ctx) defer cancel() srv.trackListener(&l, cancel) @@ -218,8 +218,8 @@ func (srv *Server) Serve(ctx context.Context, l net.Listener) error { }() select { - case <-ctx.Done(): - return ctx.Err() + case <-lnctx.Done(): + return lnctx.Err() case err := <-errch: return err }