nit: always pass &Arc<Bank>, clone() only where consumed
This commit is contained in:
@ -71,7 +71,7 @@ impl BankingStage {
|
|||||||
|
|
||||||
// Single thread to compute confirmation
|
// Single thread to compute confirmation
|
||||||
let leader_confirmation_service =
|
let leader_confirmation_service =
|
||||||
LeaderConfirmationService::new(bank.clone(), leader_id, exit.clone());
|
LeaderConfirmationService::new(&bank, leader_id, exit.clone());
|
||||||
|
|
||||||
// Many banks that process transactions in parallel.
|
// Many banks that process transactions in parallel.
|
||||||
let bank_thread_hdls: Vec<JoinHandle<UnprocessedPackets>> = (0..Self::num_threads())
|
let bank_thread_hdls: Vec<JoinHandle<UnprocessedPackets>> = (0..Self::num_threads())
|
||||||
|
@ -234,7 +234,7 @@ impl BroadcastService {
|
|||||||
#[allow(clippy::too_many_arguments)]
|
#[allow(clippy::too_many_arguments)]
|
||||||
pub fn new(
|
pub fn new(
|
||||||
slot_height: u64,
|
slot_height: u64,
|
||||||
bank: Arc<Bank>,
|
bank: &Arc<Bank>,
|
||||||
sock: UdpSocket,
|
sock: UdpSocket,
|
||||||
cluster_info: Arc<RwLock<ClusterInfo>>,
|
cluster_info: Arc<RwLock<ClusterInfo>>,
|
||||||
blob_index: u64,
|
blob_index: u64,
|
||||||
@ -244,6 +244,7 @@ impl BroadcastService {
|
|||||||
) -> Self {
|
) -> Self {
|
||||||
let exit_signal = Arc::new(AtomicBool::new(false));
|
let exit_signal = Arc::new(AtomicBool::new(false));
|
||||||
let blocktree = blocktree.clone();
|
let blocktree = blocktree.clone();
|
||||||
|
let bank = bank.clone();
|
||||||
let thread_hdl = Builder::new()
|
let thread_hdl = Builder::new()
|
||||||
.name("solana-broadcaster".to_string())
|
.name("solana-broadcaster".to_string())
|
||||||
.spawn(move || {
|
.spawn(move || {
|
||||||
@ -322,7 +323,7 @@ mod test {
|
|||||||
// Start up the broadcast stage
|
// Start up the broadcast stage
|
||||||
let broadcast_service = BroadcastService::new(
|
let broadcast_service = BroadcastService::new(
|
||||||
slot_height,
|
slot_height,
|
||||||
bank.clone(),
|
&bank,
|
||||||
leader_info.sockets.broadcast,
|
leader_info.sockets.broadcast,
|
||||||
cluster_info,
|
cluster_info,
|
||||||
blob_index,
|
blob_index,
|
||||||
|
@ -283,7 +283,7 @@ impl Fullnode {
|
|||||||
// TODO: This is not the correct bank. Instead TVU should pass along the
|
// TODO: This is not the correct bank. Instead TVU should pass along the
|
||||||
// frozen Bank for each completed block for RPC to use from it's notion of the "best"
|
// frozen Bank for each completed block for RPC to use from it's notion of the "best"
|
||||||
// available fork (until we want to surface multiple forks to RPC)
|
// available fork (until we want to surface multiple forks to RPC)
|
||||||
rpc_service.set_bank(self.bank_forks.read().unwrap().working_bank());
|
rpc_service.set_bank(&self.bank_forks.read().unwrap().working_bank());
|
||||||
}
|
}
|
||||||
|
|
||||||
if rotation_info.leader_id == self.id {
|
if rotation_info.leader_id == self.id {
|
||||||
@ -307,7 +307,7 @@ impl Fullnode {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
self.node_services.tpu.switch_to_leader(
|
self.node_services.tpu.switch_to_leader(
|
||||||
self.bank_forks.read().unwrap().working_bank(),
|
&self.bank_forks.read().unwrap().working_bank(),
|
||||||
&self.poh_recorder,
|
&self.poh_recorder,
|
||||||
self.tpu_sockets
|
self.tpu_sockets
|
||||||
.iter()
|
.iter()
|
||||||
|
@ -105,7 +105,8 @@ impl LeaderConfirmationService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Create a new LeaderConfirmationService for computing confirmation.
|
/// Create a new LeaderConfirmationService for computing confirmation.
|
||||||
pub fn new(bank: Arc<Bank>, leader_id: Pubkey, exit: Arc<AtomicBool>) -> Self {
|
pub fn new(bank: &Arc<Bank>, leader_id: Pubkey, exit: Arc<AtomicBool>) -> Self {
|
||||||
|
let bank = bank.clone();
|
||||||
let thread_hdl = Builder::new()
|
let thread_hdl = Builder::new()
|
||||||
.name("solana-leader-confirmation-service".to_string())
|
.name("solana-leader-confirmation-service".to_string())
|
||||||
.spawn(move || {
|
.spawn(move || {
|
||||||
|
10
src/rpc.rs
10
src/rpc.rs
@ -35,8 +35,8 @@ impl JsonRpcRequestProcessor {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn set_bank(&mut self, bank: Arc<Bank>) {
|
pub fn set_bank(&mut self, bank: &Arc<Bank>) {
|
||||||
self.bank = Some(bank);
|
self.bank = Some(bank.clone());
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn new(storage_state: StorageState) -> Self {
|
pub fn new(storage_state: StorageState) -> Self {
|
||||||
@ -377,7 +377,7 @@ mod tests {
|
|||||||
let request_processor = Arc::new(RwLock::new(JsonRpcRequestProcessor::new(
|
let request_processor = Arc::new(RwLock::new(JsonRpcRequestProcessor::new(
|
||||||
StorageState::default(),
|
StorageState::default(),
|
||||||
)));
|
)));
|
||||||
request_processor.write().unwrap().set_bank(bank);
|
request_processor.write().unwrap().set_bank(&bank);
|
||||||
let cluster_info = Arc::new(RwLock::new(ClusterInfo::new(NodeInfo::default())));
|
let cluster_info = Arc::new(RwLock::new(ClusterInfo::new(NodeInfo::default())));
|
||||||
let leader = NodeInfo::new_with_socketaddr(&socketaddr!("127.0.0.1:1234"));
|
let leader = NodeInfo::new_with_socketaddr(&socketaddr!("127.0.0.1:1234"));
|
||||||
|
|
||||||
@ -404,7 +404,7 @@ mod tests {
|
|||||||
let bob_pubkey = Keypair::new().pubkey();
|
let bob_pubkey = Keypair::new().pubkey();
|
||||||
let bank = Arc::new(Bank::new(&genesis_block));
|
let bank = Arc::new(Bank::new(&genesis_block));
|
||||||
let mut request_processor = JsonRpcRequestProcessor::new(StorageState::default());
|
let mut request_processor = JsonRpcRequestProcessor::new(StorageState::default());
|
||||||
request_processor.set_bank(bank.clone());
|
request_processor.set_bank(&bank);
|
||||||
thread::spawn(move || {
|
thread::spawn(move || {
|
||||||
let last_id = bank.last_id();
|
let last_id = bank.last_id();
|
||||||
let tx = SystemTransaction::new_move(&alice, bob_pubkey, 20, last_id, 0);
|
let tx = SystemTransaction::new_move(&alice, bob_pubkey, 20, last_id, 0);
|
||||||
@ -573,7 +573,7 @@ mod tests {
|
|||||||
let meta = Meta {
|
let meta = Meta {
|
||||||
request_processor: {
|
request_processor: {
|
||||||
let mut request_processor = JsonRpcRequestProcessor::new(StorageState::default());
|
let mut request_processor = JsonRpcRequestProcessor::new(StorageState::default());
|
||||||
request_processor.set_bank(bank);
|
request_processor.set_bank(&bank);
|
||||||
Arc::new(RwLock::new(request_processor))
|
Arc::new(RwLock::new(request_processor))
|
||||||
},
|
},
|
||||||
cluster_info: Arc::new(RwLock::new(ClusterInfo::new(NodeInfo::default()))),
|
cluster_info: Arc::new(RwLock::new(ClusterInfo::new(NodeInfo::default()))),
|
||||||
|
@ -71,7 +71,7 @@ impl JsonRpcService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn set_bank(&mut self, bank: Arc<Bank>) {
|
pub fn set_bank(&mut self, bank: &Arc<Bank>) {
|
||||||
self.request_processor.write().unwrap().set_bank(bank);
|
self.request_processor.write().unwrap().set_bank(bank);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -117,7 +117,7 @@ mod tests {
|
|||||||
);
|
);
|
||||||
let mut rpc_service =
|
let mut rpc_service =
|
||||||
JsonRpcService::new(&cluster_info, rpc_addr, drone_addr, StorageState::default());
|
JsonRpcService::new(&cluster_info, rpc_addr, drone_addr, StorageState::default());
|
||||||
rpc_service.set_bank(Arc::new(bank));
|
rpc_service.set_bank(&Arc::new(bank));
|
||||||
let thread = rpc_service.thread_hdl.thread();
|
let thread = rpc_service.thread_hdl.thread();
|
||||||
assert_eq!(thread.name().unwrap(), "solana-jsonrpc");
|
assert_eq!(thread.name().unwrap(), "solana-jsonrpc");
|
||||||
|
|
||||||
|
@ -189,7 +189,7 @@ impl Tpu {
|
|||||||
#[allow(clippy::too_many_arguments)]
|
#[allow(clippy::too_many_arguments)]
|
||||||
pub fn switch_to_leader(
|
pub fn switch_to_leader(
|
||||||
&mut self,
|
&mut self,
|
||||||
bank: Arc<Bank>,
|
bank: &Arc<Bank>,
|
||||||
poh_recorder: &Arc<Mutex<PohRecorder>>,
|
poh_recorder: &Arc<Mutex<PohRecorder>>,
|
||||||
transactions_sockets: Vec<UdpSocket>,
|
transactions_sockets: Vec<UdpSocket>,
|
||||||
broadcast_socket: UdpSocket,
|
broadcast_socket: UdpSocket,
|
||||||
|
Reference in New Issue
Block a user