rpc: add getSlotLeaders method (#16057)

This commit is contained in:
Justin Starry
2021-03-24 01:48:54 +08:00
committed by GitHub
parent 4f82b897bc
commit e7fd7d46cf
8 changed files with 239 additions and 28 deletions

View File

@@ -195,6 +195,10 @@ impl LeaderScheduleCache {
}
}
pub fn get_epoch_leader_schedule(&self, epoch: Epoch) -> Option<Arc<LeaderSchedule>> {
self.cached_schedules.read().unwrap().0.get(&epoch).cloned()
}
fn get_epoch_schedule_else_compute(
&self,
epoch: Epoch,
@@ -205,8 +209,7 @@ impl LeaderScheduleCache {
return Some(fixed_schedule.leader_schedule.clone());
}
}
let epoch_schedule = self.cached_schedules.read().unwrap().0.get(&epoch).cloned();
let epoch_schedule = self.get_epoch_leader_schedule(epoch);
if epoch_schedule.is_some() {
epoch_schedule
} else if let Some(epoch_schedule) = self.compute_epoch_schedule(epoch, bank) {