summaryrefslogtreecommitdiff
path: root/ports/unix/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'ports/unix/main.c')
-rw-r--r--ports/unix/main.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/ports/unix/main.c b/ports/unix/main.c
index 51d99ce5f..0acd8c9f2 100644
--- a/ports/unix/main.c
+++ b/ports/unix/main.c
@@ -209,6 +209,9 @@ static int do_repl(void) {
mp_hal_stdio_mode_raw();
input_restart:
+ // If the GC is locked at this point there is no way out except a reset,
+ // so force the GC to be unlocked to help the user debug what went wrong.
+ MP_STATE_THREAD(gc_lock_depth) = 0;
vstr_reset(&line);
int ret = readline(&line, mp_repl_get_ps1());
mp_parse_input_kind_t parse_input_kind = MP_PARSE_SINGLE_INPUT;