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>
This commit is contained in:
parent
d5f3fcd935
commit
068aa28fc5
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue