p2p: avoid spinning loop on out-of-handles (#21878)

* p2p: avoid busy-loop on temporary errors

* p2p: address review concerns
pull/21885/head
Martin Holst Swende 4 years ago committed by GitHub
parent ebb9591c4d
commit 3ef52775c4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 5
      p2p/server.go

@ -856,11 +856,16 @@ func (srv *Server) listenLoop() {
var ( var (
fd net.Conn fd net.Conn
err error err error
lastLog time.Time
) )
for { for {
fd, err = srv.listener.Accept() fd, err = srv.listener.Accept()
if netutil.IsTemporaryError(err) { if netutil.IsTemporaryError(err) {
if time.Since(lastLog) > 1*time.Second {
srv.log.Debug("Temporary read error", "err", err) srv.log.Debug("Temporary read error", "err", err)
lastLog = time.Now()
}
time.Sleep(time.Millisecond * 200)
continue continue
} else if err != nil { } else if err != nil {
srv.log.Debug("Read error", "err", err) srv.log.Debug("Read error", "err", err)

Loading…
Cancel
Save