diff --git a/core/benches/banking_stage.rs b/core/benches/banking_stage.rs index 984e534ffd4eef..bc22ae4774d798 100644 --- a/core/benches/banking_stage.rs +++ b/core/benches/banking_stage.rs @@ -56,7 +56,7 @@ use { }, std::{ iter::repeat_with, - sync::{atomic::Ordering, Arc, RwLock}, + sync::{atomic::Ordering, Arc}, time::{Duration, Instant}, }, test::Bencher, diff --git a/core/benches/consensus.rs b/core/benches/consensus.rs index 45088a90a5cb62..cff71502df977e 100644 --- a/core/benches/consensus.rs +++ b/core/benches/consensus.rs @@ -28,7 +28,10 @@ fn bench_save_tower(bench: &mut Bencher) { let vote_account_pubkey = &Pubkey::default(); let node_keypair = Arc::new(Keypair::new()); - let heaviest_bank = BankForks::new_rw_arc(Bank::default_for_tests()).working_bank(); + let heaviest_bank = BankForks::new_rw_arc(Bank::default_for_tests()) + .read() + .unwrap() + .working_bank(); let tower_storage = FileTowerStorage::new(dir.path().to_path_buf()); let tower = Tower::new( &node_keypair.pubkey(), @@ -47,7 +50,10 @@ fn bench_save_tower(bench: &mut Bencher) { fn bench_generate_ancestors_descendants(bench: &mut Bencher) { let vote_account_pubkey = &Pubkey::default(); let node_keypair = Arc::new(Keypair::new()); - let heaviest_bank = BankForks::new_rw_arc(Bank::default_for_tests()).working_bank(); + let heaviest_bank = BankForks::new_rw_arc(Bank::default_for_tests()) + .read() + .unwrap() + .working_bank(); let mut tower = Tower::new( &node_keypair.pubkey(), vote_account_pubkey, diff --git a/runtime/benches/prioritization_fee_cache.rs b/runtime/benches/prioritization_fee_cache.rs index 8a90dd60cb67df..506aac4fb729a3 100644 --- a/runtime/benches/prioritization_fee_cache.rs +++ b/runtime/benches/prioritization_fee_cache.rs @@ -101,7 +101,7 @@ fn bench_process_transactions_multiple_slots(bencher: &mut Bencher) { let GenesisConfigInfo { genesis_config, .. } = create_genesis_config(10_000); let bank0 = Bank::new_for_benches(&genesis_config); let bank_forks = BankForks::new_rw_arc(bank0); - let bank = bank_forks.working_bank(); + let bank = bank_forks.read().unwrap().working_bank(); let collector = solana_sdk::pubkey::new_rand(); let banks = (1..=NUM_SLOTS) .map(|n| Arc::new(Bank::new_from_parent(bank.clone(), &collector, n as u64))) diff --git a/runtime/src/bank_forks.rs b/runtime/src/bank_forks.rs index 334e87f5b0a02d..b0e182d4238e0f 100644 --- a/runtime/src/bank_forks.rs +++ b/runtime/src/bank_forks.rs @@ -200,7 +200,7 @@ impl BankForks { highest_slot_at_startup: 0, })); - for (_, bank) in &bank_forks.read().unwrap().banks { + for bank in bank_forks.read().unwrap().banks.values() { bank.loaded_programs_cache .write() .unwrap() diff --git a/turbine/benches/cluster_info.rs b/turbine/benches/cluster_info.rs index 5ebd0010b4ae1b..1f15137175acdb 100644 --- a/turbine/benches/cluster_info.rs +++ b/turbine/benches/cluster_info.rs @@ -25,12 +25,7 @@ use { }, cluster_nodes::ClusterNodesCache, }, - std::{ - collections::HashMap, - net::UdpSocket, - sync::{Arc, RwLock}, - time::Duration, - }, + std::{collections::HashMap, net::UdpSocket, sync::Arc, time::Duration}, test::Bencher, }; diff --git a/turbine/benches/retransmit_stage.rs b/turbine/benches/retransmit_stage.rs index 6a9be3a6670e62..3fa7558c71c35e 100644 --- a/turbine/benches/retransmit_stage.rs +++ b/turbine/benches/retransmit_stage.rs @@ -32,7 +32,7 @@ use { net::{Ipv4Addr, UdpSocket}, sync::{ atomic::{AtomicUsize, Ordering}, - Arc, RwLock, + Arc, }, thread::{sleep, Builder}, time::Duration, @@ -75,8 +75,8 @@ fn bench_retransmitter(bencher: &mut Bencher) { let GenesisConfigInfo { genesis_config, .. } = create_genesis_config(100_000); let bank0 = Bank::new_for_benches(&genesis_config); let bank_forks = BankForks::new_rw_arc(bank0); - let bank = bank_forks.working_bank(); - let bank_forks = Arc::new(RwLock::new(bank_forks)); + let bank = bank_forks.read().unwrap().working_bank(); + let bank_forks = bank_forks; let (shreds_sender, shreds_receiver) = unbounded(); const NUM_THREADS: usize = 2; let sockets = (0..NUM_THREADS)