review comments taken

This commit is contained in:
Vladimir Komendantskiy 2018-05-17 11:36:09 +01:00
parent ca49f4041b
commit a0627b2550
2 changed files with 5 additions and 12 deletions

View File

@ -268,22 +268,20 @@ impl<NodeUid: Clone + Debug + Eq + Hash> Agreement<NodeUid> {
self.uid, self.epoch
);
let decision = if vals.len() != 1 {
if vals.len() != 1 {
self.estimated = Some(coin);
None
} else {
// NOTE: `vals` has exactly one element due to `vals.len() == 1`
let v: Vec<bool> = vals.into_iter().collect();
let b = v[0];
self.estimated = Some(b);
// Outputting a value is allowed only once.
if self.output.is_none() && b == coin {
if self.decision.is_none() && b == coin {
// Output the agreement value.
self.output = Some(b);
// Latch the decided state.
self.decision = Some(b);
debug!("Agreement instance {:?} output: {}", self.uid, b);
self.output
} else {
None
}
};
@ -291,11 +289,6 @@ impl<NodeUid: Clone + Debug + Eq + Hash> Agreement<NodeUid> {
self.sent_bval.insert(b);
self.messages
.push_back(AgreementMessage::BVal(self.epoch, b));
self.output = decision;
// Latch the decided state.
if decision.is_some() {
self.decision = decision;
}
}
}

View File

@ -12,7 +12,7 @@ use agreement::{Agreement, AgreementMessage};
use broadcast;
use broadcast::{Broadcast, BroadcastMessage};
use fmt::HexBytes;
use messaging::{DistAlgorithm, MessageIter, OutputIter, Target, TargetedMessage};
use messaging::{DistAlgorithm, Target, TargetedMessage};
// TODO: Make this a generic argument of `Broadcast`.
type ProposedValue = Vec<u8>;