diff --git a/etcdserver/server.go b/etcdserver/server.go index 18a0b79f8..e320984a8 100644 --- a/etcdserver/server.go +++ b/etcdserver/server.go @@ -704,7 +704,10 @@ func (s *EtcdServer) Stop() { } func (s *EtcdServer) stopWithDelay(d time.Duration, err error) { - time.Sleep(d) + select { + case <-time.After(d): + case <-s.done: + } select { case s.errorc <- err: default: