summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--py/obj.c3
-rw-r--r--py/stream.c3
-rw-r--r--shared-module/os/__init__.c1
3 files changed, 7 insertions, 0 deletions
diff --git a/py/obj.c b/py/obj.c
index 322a302f9..bd2aaf9d2 100644
--- a/py/obj.c
+++ b/py/obj.c
@@ -63,6 +63,9 @@ const char *mp_obj_get_type_str(mp_const_obj_t o_in) {
void mp_obj_print_helper(const mp_print_t *print, mp_obj_t o_in, mp_print_kind_t kind) {
// There can be data structures nested too deep, or just recursive
MP_STACK_CHECK();
+ #ifdef RUN_BACKGROUND_TASKS
+ RUN_BACKGROUND_TASKS;
+ #endif
#ifndef NDEBUG
if (o_in == MP_OBJ_NULL) {
mp_print_str(print, "(nil)");
diff --git a/py/stream.c b/py/stream.c
index 08c749cc3..1d25f6470 100644
--- a/py/stream.c
+++ b/py/stream.c
@@ -341,6 +341,9 @@ STATIC mp_obj_t stream_readall(mp_obj_t self_in) {
p = vstr_extend(&vstr, DEFAULT_BUFFER_SIZE);
current_read = DEFAULT_BUFFER_SIZE;
}
+ #ifdef RUN_BACKGROUND_TASKS
+ RUN_BACKGROUND_TASKS;
+ #endif
}
vstr.len = total_size;
diff --git a/shared-module/os/__init__.c b/shared-module/os/__init__.c
index 313893d97..8060eec4f 100644
--- a/shared-module/os/__init__.c
+++ b/shared-module/os/__init__.c
@@ -128,6 +128,7 @@ mp_obj_t common_hal_os_listdir(const char* path) {
while ((next = mp_iternext(iter_obj)) != MP_OBJ_STOP_ITERATION) {
// next[0] is the filename.
mp_obj_list_append(dir_list, mp_obj_subscr(next, MP_OBJ_NEW_SMALL_INT(0), MP_OBJ_SENTINEL));
+ RUN_BACKGROUND_TASKS;
}
return dir_list;
}