Skip to content

Commit 871e5c6

Browse files
committed
Revert "bring back buffering"
This reverts commit ada3005.
1 parent ada3005 commit 871e5c6

File tree

1 file changed

+13
-27
lines changed

1 file changed

+13
-27
lines changed

quinn/src/connection.rs

Lines changed: 13 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -900,7 +900,6 @@ impl ConnectionRef {
900900
udp_sender: sender,
901901
runtime,
902902
send_buffer: Vec::new(),
903-
buffered_transmit: None,
904903
observed_external_addr: watch::Sender::new(None),
905904
}),
906905
shared: Shared::default(),
@@ -1019,8 +1018,6 @@ pub(crate) struct State {
10191018
udp_sender: Pin<Box<dyn UdpSender>>,
10201019
runtime: Arc<dyn Runtime>,
10211020
send_buffer: Vec<u8>,
1022-
/// We buffer a transmit when the underlying I/O would block
1023-
buffered_transmit: Option<proto::Transmit>,
10241021
/// Our last external address reported by the peer.
10251022
pub(crate) observed_external_addr: watch::Sender<Option<SocketAddr>>,
10261023
}
@@ -1033,26 +1030,18 @@ impl State {
10331030
let max_datagrams = self.udp_sender.max_transmit_segments();
10341031

10351032
loop {
1036-
// Retry the last transmit, or get a new one.
1037-
let t = match self.buffered_transmit.take() {
1038-
Some(t) => t,
1039-
None => {
1040-
self.send_buffer.clear();
1041-
self.send_buffer.reserve(self.inner.current_mtu() as usize);
1042-
match self
1043-
.inner
1044-
.poll_transmit(now, max_datagrams, &mut self.send_buffer)
1045-
{
1046-
Some(t) => {
1047-
transmits += match t.segment_size {
1048-
None => 1,
1049-
Some(s) => (t.size + s - 1) / s, // round up
1050-
};
1051-
t
1052-
}
1053-
None => break,
1054-
}
1055-
}
1033+
self.send_buffer.clear();
1034+
self.send_buffer.reserve(self.inner.current_mtu() as usize);
1035+
let Some(t) = self
1036+
.inner
1037+
.poll_transmit(now, max_datagrams, &mut self.send_buffer)
1038+
else {
1039+
break;
1040+
};
1041+
1042+
transmits += match t.segment_size {
1043+
None => 1,
1044+
Some(s) => (t.size + s - 1) / s, // round up
10561045
};
10571046

10581047
let len = t.size;
@@ -1062,10 +1051,7 @@ impl State {
10621051
.as_mut()
10631052
.poll_send(&udp_transmit(&t, &self.send_buffer[..len]), cx)
10641053
{
1065-
Poll::Pending => {
1066-
self.buffered_transmit = Some(t);
1067-
return Ok(false);
1068-
}
1054+
Poll::Pending => return Ok(true),
10691055
Poll::Ready(result) => result?, // propagate errors
10701056
}
10711057

0 commit comments

Comments
 (0)