diff --git a/channels/reliable_channel.nim b/channels/reliable_channel.nim index d21143699..ada47a6ad 100644 --- a/channels/reliable_channel.nim +++ b/channels/reliable_channel.nim @@ -144,21 +144,21 @@ proc onMessageSent(self: ReliableChannel, messagingReqId: RequestId) = ## the matching `InFlight` segment to `Confirmed` and prunes. The ## listener routes every event through here; entries that don't ## belong to this channel simply don't match and are no-ops. - for i in 0 ..< self.pendingMessagingRequests.len: - if self.pendingMessagingRequests[i].segmentSendState == SegmentSendState.InFlight and - self.pendingMessagingRequests[i].messagingReqId == some(messagingReqId): - self.pendingMessagingRequests[i].segmentSendState = SegmentSendState.Confirmed - self.pruneCompletedChannelReqs() - return + self.pendingMessagingRequests.applyItIf( + it.segmentSendState == SegmentSendState.InFlight and + it.messagingReqId == some(messagingReqId) + ): + it.segmentSendState = SegmentSendState.Confirmed + self.pruneCompletedChannelReqs() proc onMessageError(self: ReliableChannel, messagingReqId: RequestId) = ## Symmetric to `onMessageSent` but for `MessageErrorEvent`. - for i in 0 ..< self.pendingMessagingRequests.len: - if self.pendingMessagingRequests[i].segmentSendState == SegmentSendState.InFlight and - self.pendingMessagingRequests[i].messagingReqId == some(messagingReqId): - self.pendingMessagingRequests[i].segmentSendState = SegmentSendState.Failed - self.pruneCompletedChannelReqs() - return + self.pendingMessagingRequests.applyItIf( + it.segmentSendState == SegmentSendState.InFlight and + it.messagingReqId == some(messagingReqId) + ): + it.segmentSendState = SegmentSendState.Failed + self.pruneCompletedChannelReqs() proc onReadyToSend( self: ReliableChannel, msgs: seq[seq[byte]] diff --git a/waku/node/delivery_service/send_service/send_service.nim b/waku/node/delivery_service/send_service/send_service.nim index 902f3aa1c..88ec802cf 100644 --- a/waku/node/delivery_service/send_service/send_service.nim +++ b/waku/node/delivery_service/send_service/send_service.nim @@ -26,7 +26,7 @@ logScope: # This useful util is missing from sequtils, this extends applyIt with predicate... template applyItIf*(varSeq, pred, op: untyped) = for i in low(varSeq) .. high(varSeq): - let it {.inject.} = varSeq[i] + var it {.inject.} = varSeq[i] if pred: op varSeq[i] = it