Skip to content

Commit 519bd86

Browse files
author
Maximilian Rozwora
committed
fix: Check buffer full before pop_done()
1 parent c52f567 commit 519bd86

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

embassy-stm32/src/usart/buffered.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -911,12 +911,13 @@ impl<'d> embedded_hal_02::serial::Read<u8> for BufferedUartRx<'d> {
911911
let state = self.state;
912912
let mut rx_reader = unsafe { state.rx_buf.reader() };
913913

914+
let do_pend = state.rx_buf.is_full();
914915
if let Some(data) = rx_reader.pop_one() {
915-
Ok(data)
916-
} else {
917-
if state.rx_buf.is_full() {
916+
if do_pend {
918917
self.info.interrupt.pend();
919918
}
919+
Ok(data)
920+
} else {
920921
Err(nb::Error::WouldBlock)
921922
}
922923
}

0 commit comments

Comments
 (0)