From 33564d24b2c8fd3755c11697891b98b46e830070 Mon Sep 17 00:00:00 2001 From: Michael Crosby Date: Thu, 30 Aug 2018 11:40:42 -0400 Subject: [PATCH] Signal server done before closing connections This fixes the races we are seeing in the tests Signed-off-by: Michael Crosby --- .travis.yml | 2 +- server.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index b3f936e..00627fc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ language: go go: - - 1.9.x + - "1.10.x" script: go test -race -v ./... diff --git a/server.go b/server.go index 1a518b1..263cb45 100644 --- a/server.go +++ b/server.go @@ -127,13 +127,13 @@ func (s *Server) Serve(ctx context.Context, l net.Listener) error { func (s *Server) Shutdown(ctx context.Context) error { s.mu.Lock() - lnerr := s.closeListeners() select { case <-s.done: default: // protected by mutex close(s.done) } + lnerr := s.closeListeners() s.mu.Unlock() ticker := time.NewTicker(200 * time.Millisecond)