Enhance substrate ingest limits and optimize simulator stream reuse
This commit is contained in:
@@ -38,9 +38,17 @@ pub async fn run_t2_emitter(
|
||||
) -> u64 {
|
||||
let period = Duration::from_nanos((1.0e9 / rate_hz) as u64);
|
||||
let mut ticker = tokio::time::interval(period);
|
||||
ticker.set_missed_tick_behavior(MissedTickBehavior::Delay);
|
||||
ticker.set_missed_tick_behavior(MissedTickBehavior::Skip);
|
||||
let mut sent: u64 = 0;
|
||||
|
||||
let mut send = match conn.open_uni().await {
|
||||
Ok(s) => s,
|
||||
Err(e) => {
|
||||
tracing::warn!(error = %e, "T2 open_uni failed; emitter exiting");
|
||||
return 0;
|
||||
}
|
||||
};
|
||||
|
||||
loop {
|
||||
ticker.tick().await;
|
||||
if interrupted.load(Ordering::SeqCst) {
|
||||
@@ -57,25 +65,19 @@ pub async fn run_t2_emitter(
|
||||
};
|
||||
slot.seq = slot.seq.wrapping_add(1);
|
||||
|
||||
match conn.open_uni().await {
|
||||
Ok(mut send) => {
|
||||
if let Err(e) = send.write_all(&msg.to_bytes()).await {
|
||||
tracing::warn!(error = %e, "T2 write_all failed");
|
||||
continue;
|
||||
}
|
||||
if let Err(e) = send.finish() {
|
||||
tracing::warn!(error = %e, "T2 finish failed");
|
||||
continue;
|
||||
}
|
||||
sent += 1;
|
||||
counter.store(sent, Ordering::Relaxed);
|
||||
}
|
||||
Err(e) => {
|
||||
tracing::warn!(error = %e, "T2 open_uni failed; emitter exiting");
|
||||
break;
|
||||
}
|
||||
if let Err(e) = send.write_all(&msg.to_bytes()).await {
|
||||
tracing::warn!(error = %e, "T2 write_all failed; stream closed?");
|
||||
break;
|
||||
}
|
||||
|
||||
sent += 1;
|
||||
counter.store(sent, Ordering::Relaxed);
|
||||
}
|
||||
|
||||
if let Err(e) = send.finish() {
|
||||
tracing::warn!(error = %e, "T2 finish failed");
|
||||
}
|
||||
|
||||
sent
|
||||
}
|
||||
|
||||
@@ -92,7 +94,7 @@ pub async fn run_t3_emitter(
|
||||
) -> (u64, u64) {
|
||||
let period = Duration::from_nanos((1.0e9 / rate_hz) as u64);
|
||||
let mut ticker = tokio::time::interval(period);
|
||||
ticker.set_missed_tick_behavior(MissedTickBehavior::Delay);
|
||||
ticker.set_missed_tick_behavior(MissedTickBehavior::Skip);
|
||||
let mut sent: u64 = 0;
|
||||
let mut timeouts: u64 = 0;
|
||||
|
||||
|
||||
@@ -221,7 +221,7 @@ async fn main() -> anyhow::Result<()> {
|
||||
if cli.rate_hz > 0.0 {
|
||||
let period = Duration::from_nanos((1.0e9 / cli.rate_hz) as u64);
|
||||
let mut ticker = tokio::time::interval(period);
|
||||
ticker.set_missed_tick_behavior(MissedTickBehavior::Delay);
|
||||
ticker.set_missed_tick_behavior(MissedTickBehavior::Skip);
|
||||
|
||||
let unlimited = cli.count == 0;
|
||||
let mut last_progress = started;
|
||||
|
||||
Reference in New Issue
Block a user