Use batch_send in forward_buffered_packets (#20330)
This commit is contained in:
parent
94668c95c2
commit
3854cfaa00
|
@ -41,6 +41,7 @@ use solana_sdk::{
|
||||||
timing::{duration_as_ms, timestamp, AtomicInterval},
|
timing::{duration_as_ms, timestamp, AtomicInterval},
|
||||||
transaction::{self, SanitizedTransaction, TransactionError, VersionedTransaction},
|
transaction::{self, SanitizedTransaction, TransactionError, VersionedTransaction},
|
||||||
};
|
};
|
||||||
|
use solana_streamer::sendmmsg::{batch_send, SendPktsError};
|
||||||
use solana_transaction_status::token_balances::{
|
use solana_transaction_status::token_balances::{
|
||||||
collect_token_balances, TransactionTokenBalancesSet,
|
collect_token_balances, TransactionTokenBalancesSet,
|
||||||
};
|
};
|
||||||
|
@ -375,11 +376,16 @@ impl BankingStage {
|
||||||
data_budget.update(INTERVAL_MS, |bytes| {
|
data_budget.update(INTERVAL_MS, |bytes| {
|
||||||
std::cmp::min(bytes + MAX_BYTES_PER_INTERVAL, MAX_BYTES_BUDGET)
|
std::cmp::min(bytes + MAX_BYTES_PER_INTERVAL, MAX_BYTES_BUDGET)
|
||||||
});
|
});
|
||||||
|
|
||||||
|
let mut packet_vec = Vec::with_capacity(packets.len());
|
||||||
for p in packets {
|
for p in packets {
|
||||||
if data_budget.take(p.meta.size) {
|
if data_budget.take(p.meta.size) {
|
||||||
socket.send_to(&p.data[..p.meta.size], &tpu_forwards)?;
|
packet_vec.push((&p.data[..p.meta.size], tpu_forwards));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if let Err(SendPktsError::IoError(ioerr, _num_failed)) = batch_send(socket, &packet_vec) {
|
||||||
|
return Err(ioerr);
|
||||||
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue