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

* p2p: avoid busy-loop on temporary errors

* p2p: address review concerns
This commit is contained in:
Martin Holst Swende 2020-11-20 15:14:25 +01:00 committed by GitHub
parent ebb9591c4d
commit 3ef52775c4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

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