Skip to content

Commit 160f33e

Browse files
authored
refactor: simplify the type for additional_listeners (#411)
Problem Option<&Vec<_>> is a bit unergonomic to work with. Summary of Changes Pass additional_listeners as a simple slice instead.
1 parent d45c599 commit 160f33e

File tree

1 file changed

+20
-25
lines changed

1 file changed

+20
-25
lines changed

core/src/voting_service.rs

Lines changed: 20 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -162,14 +162,14 @@ impl VotingService {
162162
bank_forks: Arc<RwLock<BankForks>>,
163163
test_override: Option<VotingServiceOverride>,
164164
) -> Self {
165-
let (additional_listeners, alpenglow_port_override) = test_override
166-
.map(|test_override| {
167-
(
168-
Some(test_override.additional_listeners),
169-
Some(test_override.alpenglow_port_override),
170-
)
171-
})
172-
.unwrap_or((None, None));
165+
let (additional_listeners, alpenglow_port_override) = match test_override {
166+
None => (Vec::new(), None),
167+
Some(VotingServiceOverride {
168+
additional_listeners,
169+
alpenglow_port_override,
170+
}) => (additional_listeners, Some(alpenglow_port_override)),
171+
};
172+
173173
let thread_hdl = Builder::new()
174174
.name("solVoteService".to_string())
175175
.spawn(move || {
@@ -208,7 +208,7 @@ impl VotingService {
208208
vote_history_storage.as_ref(),
209209
bls_op,
210210
connection_cache.clone(),
211-
additional_listeners.as_ref(),
211+
&additional_listeners,
212212
&mut staked_validators_cache,
213213
);
214214
}
@@ -267,17 +267,9 @@ impl VotingService {
267267
cluster_info: &ClusterInfo,
268268
bls_message: &BLSMessage,
269269
connection_cache: Arc<ConnectionCache>,
270-
additional_listeners: Option<&Vec<SocketAddr>>,
270+
additional_listeners: &[SocketAddr],
271271
staked_validators_cache: &mut StakedValidatorsCache,
272272
) {
273-
let (staked_validator_alpenglow_sockets, _) = staked_validators_cache
274-
.get_staked_validators_by_slot_with_alpenglow_ports(slot, cluster_info, Instant::now());
275-
276-
let sockets = additional_listeners
277-
.map(|v| v.as_slice())
278-
.unwrap_or(&[])
279-
.iter()
280-
.chain(staked_validator_alpenglow_sockets.iter());
281273
let buf = match serialize(bls_message) {
282274
Ok(buf) => buf,
283275
Err(err) => {
@@ -286,15 +278,18 @@ impl VotingService {
286278
}
287279
};
288280

281+
let (staked_validator_alpenglow_sockets, _) = staked_validators_cache
282+
.get_staked_validators_by_slot_with_alpenglow_ports(slot, cluster_info, Instant::now());
283+
let sockets = additional_listeners
284+
.iter()
285+
.chain(staked_validator_alpenglow_sockets.iter());
286+
289287
// We use send_message in a loop right now because we worry that sending packets too fast
290288
// will cause a packet spike and overwhelm the network. If we later find out that this is
291289
// not an issue, we can optimize this by using multi_targret_send or similar methods.
292-
for alpenglow_socket in sockets {
293-
if let Err(e) = send_message(buf.clone(), alpenglow_socket, &connection_cache) {
294-
warn!(
295-
"Failed to send alpenglow message to {}: {:?}",
296-
alpenglow_socket, e
297-
);
290+
for socket in sockets {
291+
if let Err(e) = send_message(buf.clone(), socket, &connection_cache) {
292+
warn!("Failed to send alpenglow message to {}: {:?}", socket, e);
298293
}
299294
}
300295
}
@@ -304,7 +299,7 @@ impl VotingService {
304299
vote_history_storage: &dyn VoteHistoryStorage,
305300
bls_op: BLSOp,
306301
connection_cache: Arc<ConnectionCache>,
307-
additional_listeners: Option<&Vec<SocketAddr>>,
302+
additional_listeners: &[SocketAddr],
308303
staked_validators_cache: &mut StakedValidatorsCache,
309304
) {
310305
match bls_op {

0 commit comments

Comments
 (0)