summaryrefslogtreecommitdiff
path: root/supervisor
diff options
context:
space:
mode:
Diffstat (limited to 'supervisor')
-rw-r--r--supervisor/shared/autoreload.c12
-rw-r--r--supervisor/shared/autoreload.h4
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