From 95f56e653e8980db48d9d12385449284db5394ce Mon Sep 17 00:00:00 2001 From: Ivan FB Date: Fri, 29 May 2026 09:06:07 +0200 Subject: [PATCH] fix logic issue added recently --- channels/reliable_channel.nim | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/channels/reliable_channel.nim b/channels/reliable_channel.nim index ada47a6ad..ac1046c58 100644 --- a/channels/reliable_channel.nim +++ b/channels/reliable_channel.nim @@ -137,7 +137,11 @@ proc pruneCompletedChannelReqs(self: ReliableChannel) = ## segment doesn't trigger a drop on its own — we wait until siblings ## are also accounted for, so the channel-level outcome is decided ## from a complete picture. - self.pendingMessagingRequests.keepItIf(not it.segmentSendState.isFinal()) + var channelsWithPending = initHashSet[RequestId]() + for entry in self.pendingMessagingRequests: + if not entry.segmentSendState.isFinal(): + channelsWithPending.incl(entry.channelReqId) + self.pendingMessagingRequests.keepItIf(it.channelReqId in channelsWithPending) proc onMessageSent(self: ReliableChannel, messagingReqId: RequestId) = ## Invoked from this channel's `MessageSentEvent` listener. Flips