rp2/machine_uart: Fix event wait in uart.flush() and uart.read().

Do not wait in the worst case up to the timeout.

Fixes issue #13377.

Signed-off-by: robert-hh <robert@hammelrath.com>
pull/13379/head
robert-hh 2024-01-07 17:53:53 +01:00 zatwierdzone przez Damien George
rodzic bd21820b4c
commit 07472d05db
1 zmienionych plików z 2 dodań i 2 usunięć

Wyświetl plik

@ -483,7 +483,7 @@ STATIC mp_uint_t mp_machine_uart_read(mp_obj_t self_in, void *buf_in, mp_uint_t
return i;
}
}
mp_event_wait_ms(timeout - elapsed);
mp_event_handle_nowait();
}
*dest++ = ringbuf_get(&(self->read_buffer));
start = mp_hal_ticks_ms(); // Inter-character timeout
@ -559,7 +559,7 @@ STATIC mp_uint_t mp_machine_uart_ioctl(mp_obj_t self_in, mp_uint_t request, uint
if (now >= timeout) {
break;
}
mp_event_wait_ms((timeout - now) / 1000);
mp_event_handle_nowait();
}
*errcode = MP_ETIMEDOUT;
ret = MP_STREAM_ERROR;