summaryrefslogtreecommitdiffstats
path: root/src/main/java/derms/net/rmulticast/Receive.java
diff options
context:
space:
mode:
authorSam Anthony <sam@samanthony.xyz>2024-11-18 10:35:22 -0500
committerSam Anthony <sam@samanthony.xyz>2024-11-18 10:35:22 -0500
commit6bd335c7382c0da8486e94d253dffa28525ceec7 (patch)
tree0324179a04d97664bd7f10faf8850d10d3b0555f /src/main/java/derms/net/rmulticast/Receive.java
parente62c171662c1fd14bf1aa0887ccb73e219f8f189 (diff)
downloadsoen423-6bd335c7382c0da8486e94d253dffa28525ceec7.zip
reliable multicast: avoid receiving duplicate messages
Diffstat (limited to 'src/main/java/derms/net/rmulticast/Receive.java')
-rw-r--r--src/main/java/derms/net/rmulticast/Receive.java4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/main/java/derms/net/rmulticast/Receive.java b/src/main/java/derms/net/rmulticast/Receive.java
index bf583dd..679df27 100644
--- a/src/main/java/derms/net/rmulticast/Receive.java
+++ b/src/main/java/derms/net/rmulticast/Receive.java
@@ -95,8 +95,8 @@ class Receive<T extends MessagePayload> implements Runnable {
private void deliver(Message<T> msg) {
acks.add(msg.id());
nacks.remove(msg.id());
- received.add(msg);
retransmissions.remove(msg);
- delivered.add(msg);
+ if (received.add(msg))
+ delivered.add(msg); // First time seeing this message; deliver it.
}
}