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
2 changed files with 9 additions and 4 deletions

View File

@ -221,7 +221,7 @@ impl BankingStage {
let (decision, next_leader) = { let (decision, next_leader) = {
let poh = poh_recorder.lock().unwrap(); 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( Self::consume_or_forward_packets(
next_leader, next_leader,

View File

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