clientconn, server: replace time.After with time.NewTimer (#998)

When timeout is not hit `time.After` will leak unnecessary timer, so
it's better to stop timer explicitly.

Signed-off-by: Alexander Morozov <lk4d4math@gmail.com>
This commit is contained in:
Alexander Morozov
2017-05-19 15:57:10 -07:00
committed by dfawley
parent c7379be7b6
commit 9bf8ea0a82
2 changed files with 7 additions and 2 deletions

View File

@ -445,10 +445,12 @@ func (s *Server) Serve(lis net.Listener) error {
s.mu.Lock()
s.printf("Accept error: %v; retrying in %v", err, tempDelay)
s.mu.Unlock()
timer := time.NewTimer(tempDelay)
select {
case <-time.After(tempDelay):
case <-timer.C:
case <-s.ctx.Done():
}
timer.Stop()
continue
}
s.mu.Lock()