From 147da5feb225fd176001a396a72cb7b30b25c39b Mon Sep 17 00:00:00 2001 From: Darioush Jalali Date: Fri, 23 Aug 2024 09:29:26 -0700 Subject: [PATCH] peer/network: move ctx check --- peer/network.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/peer/network.go b/peer/network.go index 987270d086..0f70bbf319 100644 --- a/peer/network.go +++ b/peer/network.go @@ -123,11 +123,13 @@ func NewNetwork(p2pNetwork *p2p.Network, appSender common.AppSender, codec codec // Returns the ID of the chosen peer, and an error if the request could not // be sent to a peer with the desired [minVersion]. func (n *network) SendAppRequestAny(ctx context.Context, minVersion *version.Application, request []byte, handler message.ResponseHandler) (ids.NodeID, error) { + // Propagate context errors immediately + if err := ctx.Err(); err != nil { + return ids.EmptyNodeID, err + } + // Take a slot from total [activeAppRequests] and block until a slot becomes available. if err := n.activeAppRequests.Acquire(ctx, 1); err != nil { - if errors.Is(err, context.Canceled) { - return ids.EmptyNodeID, err - } return ids.EmptyNodeID, errAcquiringSemaphore }