From a0569cddd84f634dc93cf9e6ac8f3b5a916c6624 Mon Sep 17 00:00:00 2001 From: Martin Holst Swende Date: Fri, 16 Aug 2024 09:54:52 +0200 Subject: [PATCH] p2p: prevent deadlock --- p2p/peer.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/p2p/peer.go b/p2p/peer.go index e4482deae9..b421dc9467 100644 --- a/p2p/peer.go +++ b/p2p/peer.go @@ -323,12 +323,18 @@ func (p *Peer) readLoop(errc chan<- error) { for { msg, err := p.rw.ReadMsg() if err != nil { - errc <- err + select { + case <-p.closed: + case errc <- err: + } return } msg.ReceivedAt = time.Now() if err = p.handle(msg); err != nil { - errc <- err + select { + case <-p.closed: + case errc <- err: + } return } }