fixed early update of Agreement epoch

This commit is contained in:
Vladimir Komendantskiy 2018-06-12 19:36:50 +01:00
parent d5794cb5fe
commit 4dbef3968d
2 changed files with 7 additions and 7 deletions

View File

@ -343,8 +343,6 @@ impl<NodeUid: Clone + Debug + Eq + Hash + Ord> Agreement<NodeUid> {
return Ok(());
}
self.start_next_epoch();
let b = if let Some(b) = self.conf_vals.definite() {
// Outputting a value is allowed only once.
if self.decision.is_none() && b == coin {
@ -355,6 +353,8 @@ impl<NodeUid: Clone + Debug + Eq + Hash + Ord> Agreement<NodeUid> {
coin
};
self.start_next_epoch();
self.estimated = Some(b);
self.send_bval(b)?;
let queued_msgs = replace(&mut self.incoming_queue, Vec::new());

View File

@ -84,11 +84,11 @@ where
}
}
// #[test]
// fn test_agreement_random_silent() {
// let new_adversary = |_: usize, _: usize| SilentAdversary::new(MessageScheduler::Random);
// test_agreement_different_sizes(new_adversary);
// }
#[test]
fn test_agreement_random_silent() {
let new_adversary = |_: usize, _: usize| SilentAdversary::new(MessageScheduler::Random);
test_agreement_different_sizes(new_adversary);
}
#[test]
fn test_agreement_first_silent() {