Skip to content

Commit f5112c4

Browse files
committed
fix ordering
1 parent 9ab73ae commit f5112c4

1 file changed

Lines changed: 5 additions & 3 deletions

File tree

src/stream_transport.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1628,12 +1628,14 @@ impl StreamTransportCore {
16281628
return;
16291629
}
16301630

1631-
self.set_closing();
1632-
self.set_write_backpressure_active(false);
1633-
self.clear_write_buffer(false);
1631+
// Queue the write error before waking a paused reader. Otherwise the
1632+
// reader can observe `closing` and race this event with a clean loss.
16341633
self.enqueue_pending_read_event(PendingReadEvent::ConnectionLost(
16351634
err.map(|err| err.to_string()),
16361635
));
1636+
self.set_closing();
1637+
self.set_write_backpressure_active(false);
1638+
self.clear_write_buffer(false);
16371639
let _ = self.writer_tx.send(WriterCommand::Stop);
16381640
}
16391641

0 commit comments

Comments
 (0)