diff options
Diffstat (limited to 'supervisor')
| -rw-r--r-- | supervisor/shared/autoreload.c | 12 | ||||
| -rw-r--r-- | supervisor/shared/autoreload.h | 4 |
2 files changed, 15 insertions, 1 deletions
diff --git a/supervisor/shared/autoreload.c b/supervisor/shared/autoreload.c index b1d0f05a9..39c33c05e 100644 --- a/supervisor/shared/autoreload.c +++ b/supervisor/shared/autoreload.c @@ -31,13 +31,15 @@ volatile uint32_t autoreload_delay_ms = 0; bool autoreload_enabled = false; +static bool autoreload_suspended = false; volatile bool reload_next_character = false; inline void autoreload_tick() { if (autoreload_delay_ms == 0) { return; } - if (autoreload_delay_ms == 1 && autoreload_enabled && !reload_next_character) { + if (autoreload_delay_ms == 1 && autoreload_enabled && + !autoreload_suspended && !reload_next_character) { mp_keyboard_interrupt(); reload_next_character = true; } @@ -53,6 +55,14 @@ void autoreload_disable() { autoreload_enabled = false; } +void autoreload_suspend() { + autoreload_suspended = true; +} + +void autoreload_resume() { + autoreload_suspended = false; +} + inline bool autoreload_is_enabled() { return autoreload_enabled; } diff --git a/supervisor/shared/autoreload.h b/supervisor/shared/autoreload.h index bc3c6d21d..62f9fe073 100644 --- a/supervisor/shared/autoreload.h +++ b/supervisor/shared/autoreload.h @@ -39,4 +39,8 @@ void autoreload_enable(void); void autoreload_disable(void); bool autoreload_is_enabled(void); +// Temporarily turn it off. Used during the REPL. +void autoreload_suspend(void); +void autoreload_resume(void); + #endif // MICROPY_INCLUDED_SUPERVISOR_AUTORELOAD_H |
