summaryrefslogtreecommitdiffstatshomepage
path: root/lib/utils/pyexec.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/utils/pyexec.c')
-rw-r--r--lib/utils/pyexec.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/utils/pyexec.c b/lib/utils/pyexec.c
index 5d72419d1a..d8dc60bfe5 100644
--- a/lib/utils/pyexec.c
+++ b/lib/utils/pyexec.c
@@ -419,6 +419,12 @@ friendly_repl_reset:
}
#endif
+ // 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.
+ if (MP_STATE_MEM(gc_lock_depth) != 0) {
+ MP_STATE_MEM(gc_lock_depth) = 0;
+ }
+
vstr_reset(&line);
int ret = readline(&line, ">>> ");
mp_parse_input_kind_t parse_input_kind = MP_PARSE_SINGLE_INPUT;