Remove get_leader_for_next_tick()
This commit is contained in:
@ -205,8 +205,11 @@ impl ReplayStage {
|
|||||||
.name("solana-replay-stage".to_string())
|
.name("solana-replay-stage".to_string())
|
||||||
.spawn(move || {
|
.spawn(move || {
|
||||||
let _exit = Finalizer::new(exit_.clone());
|
let _exit = Finalizer::new(exit_.clone());
|
||||||
let mut last_leader_id =
|
let mut last_leader_id = leader_scheduler_
|
||||||
Self::get_leader_for_next_tick(bank.tick_height(), &leader_scheduler_);
|
.read()
|
||||||
|
.unwrap()
|
||||||
|
.get_leader_for_tick(bank.tick_height() + 1)
|
||||||
|
.unwrap();
|
||||||
let mut prev_slot = None;
|
let mut prev_slot = None;
|
||||||
let (mut current_slot, mut max_tick_height_for_slot) = {
|
let (mut current_slot, mut max_tick_height_for_slot) = {
|
||||||
let tick_height = bank.tick_height();
|
let tick_height = bank.tick_height();
|
||||||
@ -294,10 +297,12 @@ impl ReplayStage {
|
|||||||
// for leader rotation
|
// for leader rotation
|
||||||
if max_tick_height_for_slot == current_tick_height {
|
if max_tick_height_for_slot == current_tick_height {
|
||||||
// Check for leader rotation
|
// Check for leader rotation
|
||||||
let leader_id = Self::get_leader_for_next_tick(
|
let leader_id = leader_scheduler_
|
||||||
bank.tick_height(),
|
.read()
|
||||||
&leader_scheduler_,
|
.unwrap()
|
||||||
);
|
.get_leader_for_tick(current_tick_height + 1)
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
if my_id == leader_id || my_id == last_leader_id {
|
if my_id == leader_id || my_id == last_leader_id {
|
||||||
to_leader_sender.send(current_tick_height).unwrap();
|
to_leader_sender.send(current_tick_height).unwrap();
|
||||||
} else if leader_id != last_leader_id {
|
} else if leader_id != last_leader_id {
|
||||||
@ -328,17 +333,6 @@ impl ReplayStage {
|
|||||||
self.exit.store(true, Ordering::Relaxed);
|
self.exit.store(true, Ordering::Relaxed);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_leader_for_next_tick(
|
|
||||||
tick_height: u64,
|
|
||||||
leader_scheduler: &Arc<RwLock<LeaderScheduler>>,
|
|
||||||
) -> Pubkey {
|
|
||||||
let leader_scheduler = leader_scheduler.read().unwrap();
|
|
||||||
let slot = leader_scheduler.tick_height_to_slot(tick_height + 1);
|
|
||||||
leader_scheduler
|
|
||||||
.get_leader_for_slot(slot)
|
|
||||||
.expect("Scheduled leader should be calculated by this point")
|
|
||||||
}
|
|
||||||
|
|
||||||
fn get_next_slot(blocktree: &Blocktree, slot_index: u64) -> Option<u64> {
|
fn get_next_slot(blocktree: &Blocktree, slot_index: u64) -> Option<u64> {
|
||||||
// Find the next slot that chains to the old slot
|
// Find the next slot that chains to the old slot
|
||||||
let next_slots = blocktree.get_slots_since(&[slot_index]).expect("Db error");
|
let next_slots = blocktree.get_slots_since(&[slot_index]).expect("Db error");
|
||||||
|
Reference in New Issue
Block a user