Skip to content
This repository was archived by the owner on Jan 22, 2025. It is now read-only.

Commit a8d66fa

Browse files
committed
Adjust to use the installed prefix consistently
1 parent 3597dfb commit a8d66fa

File tree

4 files changed

+34
-32
lines changed

4 files changed

+34
-32
lines changed

runtime/src/bank.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ use {
6060
epoch_accounts_hash::{self, EpochAccountsHash},
6161
epoch_stakes::{EpochStakes, NodeVoteAccounts},
6262
inline_spl_associated_token_account, inline_spl_token,
63-
installed_scheduler_pool::InstalledSchedulerBox,
63+
installed_scheduler_pool::InstalledSchedulerBoxInBank,
6464
message_processor::MessageProcessor,
6565
rent_collector::{CollectedInfo, RentCollector},
6666
rent_debits::RentDebits,
@@ -1101,7 +1101,7 @@ pub struct Bank {
11011101

11021102
/// true when the bank's freezing or destruction has completed
11031103
bank_freeze_or_destruction_incremented: AtomicBool,
1104-
pub(crate) scheduler: RwLock<InstalledSchedulerBox>,
1104+
pub(crate) scheduler: RwLock<InstalledSchedulerBoxInBank>,
11051105
}
11061106

11071107
struct VoteWithStakeDelegations {
@@ -1323,7 +1323,7 @@ impl Bank {
13231323
accounts_data_size_delta_off_chain: AtomicI64::new(0),
13241324
fee_structure: FeeStructure::default(),
13251325
loaded_programs_cache: Arc::<RwLock<LoadedPrograms>>::default(),
1326-
scheduler: RwLock::<InstalledSchedulerBox>::default(),
1326+
scheduler: RwLock::<InstalledSchedulerBoxInBank>::default(),
13271327
};
13281328

13291329
bank.bank_created();
@@ -1622,7 +1622,7 @@ impl Bank {
16221622
accounts_data_size_delta_off_chain: AtomicI64::new(0),
16231623
fee_structure: parent.fee_structure.clone(),
16241624
loaded_programs_cache: parent.loaded_programs_cache.clone(),
1625-
scheduler: RwLock::<InstalledSchedulerBox>::default(),
1625+
scheduler: RwLock::<InstalledSchedulerBoxInBank>::default(),
16261626
};
16271627

16281628
let (_, ancestors_time_us) = measure_us!({
@@ -1949,7 +1949,7 @@ impl Bank {
19491949
accounts_data_size_delta_off_chain: AtomicI64::new(0),
19501950
fee_structure: FeeStructure::default(),
19511951
loaded_programs_cache: Arc::<RwLock<LoadedPrograms>>::default(),
1952-
scheduler: RwLock::<InstalledSchedulerBox>::default(),
1952+
scheduler: RwLock::<InstalledSchedulerBoxInBank>::default(),
19531953
};
19541954
bank.bank_created();
19551955

runtime/src/bank_forks.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ pub struct BankForks {
6767
pub accounts_hash_interval_slots: Slot,
6868
last_accounts_hash_slot: Slot,
6969
in_vote_only_mode: Arc<AtomicBool>,
70-
pub(crate) scheduler_pool: InstalledSchedulerPoolArc,
70+
pub(crate) scheduler_pool: Option<InstalledSchedulerPoolArc>,
7171
}
7272

7373
impl Index<u64> for BankForks {
@@ -190,7 +190,7 @@ impl BankForks {
190190
accounts_hash_interval_slots: std::u64::MAX,
191191
last_accounts_hash_slot: root,
192192
in_vote_only_mode: Arc::new(AtomicBool::new(false)),
193-
scheduler_pool: InstalledSchedulerPoolArc::default(),
193+
scheduler_pool: None,
194194
}
195195
}
196196

runtime/src/installed_scheduler_pool.rs

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ use {
3838
// Send + Sync is needed to be a field of BankForks
3939
#[cfg_attr(any(test, feature = "test-in-workspace"), automock)]
4040
pub trait InstalledSchedulerPool: Send + Sync + Debug {
41-
fn take_from_pool(&self, context: SchedulingContext) -> SchedulerBox;
42-
fn return_to_pool(&self, scheduler: SchedulerBox);
41+
fn take_from_pool(&self, context: SchedulingContext) -> InstalledSchedulerBox;
42+
fn return_to_pool(&self, scheduler: InstalledSchedulerBox);
4343
}
4444

4545
#[cfg_attr(any(test, feature = "test-in-workspace"), automock)]
@@ -49,7 +49,7 @@ pub trait InstalledSchedulerPool: Send + Sync + Debug {
4949
// Send + Sync is needed to be a field of Bank
5050
pub trait InstalledScheduler: Send + Sync + Debug {
5151
fn scheduler_id(&self) -> SchedulerId;
52-
fn scheduler_pool(&self) -> SchedulerPoolArc;
52+
fn scheduler_pool(&self) -> InstalledSchedulerPoolArc;
5353

5454
// Calling this is illegal as soon as schedule_termiantion is called on &self.
5555
fn schedule_execution(&self, sanitized_tx: &SanitizedTransaction, index: usize);
@@ -70,8 +70,7 @@ pub trait InstalledScheduler: Send + Sync + Debug {
7070
fn replace_scheduler_context(&mut self, context: SchedulingContext);
7171
}
7272

73-
pub type SchedulerPoolArc = Arc<dyn InstalledSchedulerPool>;
74-
pub(crate) type InstalledSchedulerPoolArc = Option<SchedulerPoolArc>;
73+
pub type InstalledSchedulerPoolArc = Arc<dyn InstalledSchedulerPool>;
7574

7675
pub type SchedulerId = u64;
7776

@@ -88,16 +87,16 @@ pub enum WaitReason {
8887
ReinitializedForRecentBlockhash,
8988
}
9089

91-
pub type SchedulerBox = Box<dyn InstalledScheduler>;
90+
pub type InstalledSchedulerBox = Box<dyn InstalledScheduler>;
9291
// somewhat arbitrary new type just to pacify Bank's frozen_abi...
9392
#[derive(Debug, Default)]
94-
pub(crate) struct InstalledSchedulerBox(Option<SchedulerBox>);
93+
pub(crate) struct InstalledSchedulerBoxInBank(Option<InstalledSchedulerBox>);
9594

9695
#[cfg(RUSTC_WITH_SPECIALIZATION)]
9796
use solana_frozen_abi::abi_example::AbiExample;
9897

9998
#[cfg(RUSTC_WITH_SPECIALIZATION)]
100-
impl AbiExample for InstalledSchedulerBox {
99+
impl AbiExample for InstalledSchedulerBoxInBank {
101100
fn example() -> Self {
102101
Self(None)
103102
}
@@ -182,7 +181,7 @@ impl Deref for BankWithScheduler {
182181
}
183182

184183
impl BankForks {
185-
pub fn install_scheduler_pool(&mut self, pool: SchedulerPoolArc) {
184+
pub fn install_scheduler_pool(&mut self, pool: InstalledSchedulerPoolArc) {
186185
info!("Installed new scheduler_pool into bank_forks: {:?}", pool);
187186
assert!(self.scheduler_pool.replace(pool).is_none());
188187
}
@@ -196,7 +195,7 @@ impl BankForks {
196195
}
197196

198197
impl Bank {
199-
pub fn install_scheduler(&self, scheduler: SchedulerBox) {
198+
pub fn install_scheduler(&self, scheduler: InstalledSchedulerBox) {
200199
let mut scheduler_guard = self.scheduler.write().expect("not poisoned");
201200
assert!(scheduler_guard.0.replace(scheduler).is_none());
202201
}
@@ -318,7 +317,7 @@ mod tests {
318317
solana_sdk::system_transaction,
319318
};
320319

321-
fn setup_mocked_scheduler_pool(seq: &mut Sequence) -> SchedulerPoolArc {
320+
fn setup_mocked_scheduler_pool(seq: &mut Sequence) -> InstalledSchedulerPoolArc {
322321
let mut mock = MockInstalledSchedulerPool::new();
323322
mock.expect_return_to_pool()
324323
.times(1)
@@ -330,7 +329,7 @@ mod tests {
330329
fn setup_mocked_scheduler_with_extra(
331330
wait_reasons: impl Iterator<Item = WaitReason>,
332331
f: Option<impl Fn(&mut MockInstalledScheduler)>,
333-
) -> SchedulerBox {
332+
) -> InstalledSchedulerBox {
334333
let mut mock = MockInstalledScheduler::new();
335334
let mut seq = Sequence::new();
336335

@@ -353,7 +352,9 @@ mod tests {
353352
Box::new(mock)
354353
}
355354

356-
fn setup_mocked_scheduler(wait_reasons: impl Iterator<Item = WaitReason>) -> SchedulerBox {
355+
fn setup_mocked_scheduler(
356+
wait_reasons: impl Iterator<Item = WaitReason>,
357+
) -> InstalledSchedulerBox {
357358
setup_mocked_scheduler_with_extra(
358359
wait_reasons,
359360
None::<fn(&mut MockInstalledScheduler) -> ()>,

scheduler-pool/src/lib.rs

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,9 @@ use {
1616
solana_program_runtime::timings::ExecuteTimings,
1717
solana_runtime::{
1818
installed_scheduler_pool::{
19-
InstalledScheduler, InstalledSchedulerPool, ResultWithTimings, SchedulerBox,
20-
SchedulerId, SchedulerPoolArc, SchedulingContext, WaitReason,
19+
InstalledScheduler, InstalledSchedulerBox, InstalledSchedulerPool,
20+
InstalledSchedulerPoolArc, ResultWithTimings, SchedulerId, SchedulingContext,
21+
WaitReason,
2122
},
2223
prioritization_fee_cache::PrioritizationFeeCache,
2324
vote_sender_types::ReplayVoteSender,
@@ -31,7 +32,7 @@ use {
3132
// types aren't available there...
3233
#[derive(Debug)]
3334
pub struct SchedulerPool {
34-
schedulers: Mutex<Vec<SchedulerBox>>,
35+
schedulers: Mutex<Vec<InstalledSchedulerBox>>,
3536
log_messages_bytes_limit: Option<usize>,
3637
transaction_status_sender: Option<TransactionStatusSender>,
3738
replay_vote_sender: Option<ReplayVoteSender>,
@@ -45,9 +46,9 @@ impl SchedulerPool {
4546
transaction_status_sender: Option<TransactionStatusSender>,
4647
replay_vote_sender: Option<ReplayVoteSender>,
4748
prioritization_fee_cache: Arc<PrioritizationFeeCache>,
48-
) -> SchedulerPoolArc {
49+
) -> InstalledSchedulerPoolArc {
4950
Arc::new_cyclic(|weak_self| Self {
50-
schedulers: Mutex::<Vec<SchedulerBox>>::default(),
51+
schedulers: Mutex::<Vec<InstalledSchedulerBox>>::default(),
5152
log_messages_bytes_limit,
5253
transaction_status_sender,
5354
replay_vote_sender,
@@ -64,7 +65,7 @@ impl SchedulerPool {
6465
}
6566

6667
impl InstalledSchedulerPool for SchedulerPool {
67-
fn take_from_pool(&self, context: SchedulingContext) -> SchedulerBox {
68+
fn take_from_pool(&self, context: SchedulingContext) -> InstalledSchedulerBox {
6869
assert!(!context.bank().with_scheduler());
6970

7071
let mut schedulers = self.schedulers.lock().expect("not poisoned");
@@ -75,11 +76,11 @@ impl InstalledSchedulerPool for SchedulerPool {
7576
scheduler.replace_scheduler_context(context);
7677
scheduler
7778
} else {
78-
Box::new(Scheduler::spawn(self.self_arc(), context))
79+
Box::new(PooledScheduler::spawn(self.self_arc(), context))
7980
}
8081
}
8182

82-
fn return_to_pool(&self, scheduler: SchedulerBox) {
83+
fn return_to_pool(&self, scheduler: InstalledSchedulerBox) {
8384
assert!(scheduler.scheduling_context().is_none());
8485

8586
self.schedulers
@@ -93,14 +94,14 @@ impl InstalledSchedulerPool for SchedulerPool {
9394
// this will be replaced with more proper implementation...
9495
// not usable at all, especially for mainnet-beta
9596
#[derive(Debug)]
96-
struct Scheduler {
97+
struct PooledScheduler {
9798
id: SchedulerId,
9899
pool: Arc<SchedulerPool>,
99100
context: Option<SchedulingContext>,
100101
result_with_timings: Mutex<Option<ResultWithTimings>>,
101102
}
102103

103-
impl Scheduler {
104+
impl PooledScheduler {
104105
fn spawn(pool: Arc<SchedulerPool>, initial_context: SchedulingContext) -> Self {
105106
Self {
106107
id: thread_rng().gen::<SchedulerId>(),
@@ -110,12 +111,12 @@ impl Scheduler {
110111
}
111112
}
112113
}
113-
impl InstalledScheduler for Scheduler {
114+
impl InstalledScheduler for PooledScheduler {
114115
fn scheduler_id(&self) -> SchedulerId {
115116
self.id
116117
}
117118

118-
fn scheduler_pool(&self) -> SchedulerPoolArc {
119+
fn scheduler_pool(&self) -> InstalledSchedulerPoolArc {
119120
self.pool.clone()
120121
}
121122

0 commit comments

Comments
 (0)