From 9e592bcc03e9464d7363ee9dcce9bdd7b1ba9b9c Mon Sep 17 00:00:00 2001 From: Youngjoon Lee <5462944+youngjoon-lee@users.noreply.github.com> Date: Tue, 21 May 2024 19:55:34 +0900 Subject: [PATCH] fix: update node state to RECEIVING only when it is not SENDING --- mixnet/v2/sim/adversary.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/mixnet/v2/sim/adversary.py b/mixnet/v2/sim/adversary.py index d4af53e..1091fca 100644 --- a/mixnet/v2/sim/adversary.py +++ b/mixnet/v2/sim/adversary.py @@ -31,14 +31,13 @@ class Adversary: def observe_incoming_message(self, node: "Node"): self.mixed_msgs_per_window[-1][node] += 1 - # TODO: check duplications. Two events at the same time? - self.node_states[self.env.now][node] = NodeState.RECEIVING + if node not in self.node_states[self.env.now]: + self.node_states[self.env.now][node] = NodeState.RECEIVING def observe_outgoing_message(self, node: "Node"): self.mixed_msgs_per_window[-1][node] -= 1 if self.is_around_message_interval(self.env.now): self.senders_around_interval[node] += 1 - # TODO: check duplications. Two events at the same time? self.node_states[self.env.now][node] = NodeState.SENDING def is_around_message_interval(self, time: SimTime):