summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorroot <siehputz@gmail.com>2020-11-05 11:10:40 -0600
committerroot <siehputz@gmail.com>2020-11-05 11:10:40 -0600
commitc2aa54ae661612e68768e10b76fd942af036ecda (patch)
treea3b6bee2d1c52f97159b5125e17be8bd4df86a47
parent2b4d12abcc09b22985d456f3a05fc8511fc9def4 (diff)
Check for Ctrl-C during sleeps
-rw-r--r--ports/esp32s2/supervisor/port.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/ports/esp32s2/supervisor/port.c b/ports/esp32s2/supervisor/port.c
index 0b9c03f74..2aa01cb15 100644
--- a/ports/esp32s2/supervisor/port.c
+++ b/ports/esp32s2/supervisor/port.c
@@ -203,7 +203,16 @@ void port_sleep_until_interrupt(void) {
if (sleep_time_duration == 0) {
return;
}
- vTaskDelayUntil(&sleep_time_set, sleep_time_duration);
+ // Need to run in a loop in order to check if CTRL-C was received
+ TickType_t start_ticks = 0;
+ while (sleep_time_duration > start_ticks ) {
+ vTaskDelayUntil(&sleep_time_set, 1);
+ if ( mp_hal_is_interrupted() ) {
+ mp_handle_pending();
+ }
+ start_ticks = start_ticks + 1;
+ }
+
}