From ff3e819a4f167f886fee6541c08caee0128df075 Mon Sep 17 00:00:00 2001 From: Vladimir Komendantskiy Date: Tue, 15 May 2018 16:00:37 +0100 Subject: [PATCH] a better check for when bin_values becomes non-empty --- src/agreement.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/agreement.rs b/src/agreement.rs index 7c53dc8..063c710 100644 --- a/src/agreement.rs +++ b/src/agreement.rs @@ -140,11 +140,12 @@ impl Agreement { // upon receiving BVAL_r(b) messages from 2f + 1 nodes, // bin_values_r := bin_values_r ∪ {b} if count_bval == 2 * self.num_faulty_nodes + 1 { + let bin_values_was_empty = self.bin_values.is_empty(); self.bin_values.insert(b); // wait until bin_values_r != 0, then multicast AUX_r(w) // where w ∈ bin_values_r - if self.bin_values.len() == 1 { + if bin_values_was_empty { // Send an AUX message at most once per epoch. outgoing.push_back(AgreementMessage::Aux(self.epoch, b)); // Receive the AUX message locally.