Don't use default ticks per slot in calculating next slot leader (#4169)

This commit is contained in:
Pankaj Garg 2019-05-06 11:23:06 -07:00 committed by GitHub
parent 694d28acf8
commit e9f80e5542
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 4 deletions

View File

@ -221,7 +221,7 @@ impl BankingStage {
let (decision, next_leader) = {
let poh = poh_recorder.lock().unwrap();
let next_leader = poh.next_slot_leader(DEFAULT_TICKS_PER_SLOT, None);
let next_leader = poh.next_slot_leader();
(
Self::consume_or_forward_packets(
next_leader,

View File

@ -55,6 +55,7 @@ pub struct PohRecorder {
id: Pubkey,
blocktree: Arc<Blocktree>,
leader_schedule_cache: Arc<LeaderScheduleCache>,
ticks_per_slot: u64,
}
impl PohRecorder {
@ -92,9 +93,10 @@ impl PohRecorder {
self.working_bank.is_some() || close_to_leader_tick
}
pub fn next_slot_leader(&self, ticks_per_slot: u64, bank: Option<&Bank>) -> Option<Pubkey> {
let slot = leader_schedule_utils::tick_height_to_slot(ticks_per_slot, self.tick_height());
self.leader_schedule_cache.slot_leader_at(slot + 1, bank)
pub fn next_slot_leader(&self) -> Option<Pubkey> {
let slot =
leader_schedule_utils::tick_height_to_slot(self.ticks_per_slot, self.tick_height());
self.leader_schedule_cache.slot_leader_at(slot + 1, None)
}
pub fn hash(&mut self) {
@ -190,6 +192,7 @@ impl PohRecorder {
);
self.start_leader_at_tick = start_leader_at_tick;
self.last_leader_tick = last_leader_tick;
self.ticks_per_slot = ticks_per_slot;
}
pub fn set_working_bank(&mut self, working_bank: WorkingBank) {
@ -203,6 +206,7 @@ impl PohRecorder {
min_tick_height: bank.tick_height(),
max_tick_height,
};
self.ticks_per_slot = bank.ticks_per_slot();
self.set_working_bank(working_bank);
}
@ -322,6 +326,7 @@ impl PohRecorder {
id: *id,
blocktree: blocktree.clone(),
leader_schedule_cache: leader_schedule_cache.clone(),
ticks_per_slot,
},
receiver,
)