Retire closed transport stream ids

This commit is contained in:
DuProcess
2026-07-09 19:49:56 -04:00
parent 68cf411143
commit 5c8bd68aa6
3 changed files with 303 additions and 38 deletions
+9 -1
View File
@@ -4986,7 +4986,9 @@ async fn run_terminal(
continue;
};
last_packet_at = Instant::now();
stream_pending_opens.remove(&ok.stream_id);
if stream_pending_opens.remove(&ok.stream_id).is_none() {
continue;
}
opened_streams.insert(ok.stream_id);
stream_send_credit.entry(ok.stream_id).or_insert(STREAM_INITIAL_WINDOW);
stream_next_send_offset.entry(ok.stream_id).or_insert(0);
@@ -5044,6 +5046,9 @@ async fn run_terminal(
};
last_packet_at = Instant::now();
let stream_id = data.stream_id;
if !opened_streams.contains(&stream_id) {
continue;
}
let (writes, consumed, received_offset) =
accept_stream_data(&mut stream_next_recv_offset, &mut stream_recv_pending, data);
if let Some(writer) = stream_writers.get_mut(&stream_id) {
@@ -5078,6 +5083,9 @@ async fn run_terminal(
continue;
};
last_packet_at = Instant::now();
if !opened_streams.contains(&adjust.stream_id) {
continue;
}
ack_stream_data(
&mut stream_sent_data,
&mut stream_send_credit,