summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ports/esp32/main.c2
-rw-r--r--ports/esp8266/main.c1
-rw-r--r--ports/stm32/main.c2
-rw-r--r--ports/unix/main.c4
4 files changed, 9 insertions, 0 deletions
diff --git a/ports/esp32/main.c b/ports/esp32/main.c
index e7290c7eb..acbbfdccc 100644
--- a/ports/esp32/main.c
+++ b/ports/esp32/main.c
@@ -116,6 +116,8 @@ soft_reset:
mp_thread_deinit();
#endif
+ gc_sweep_all();
+
mp_hal_stdout_tx_str("PYB: soft reboot\r\n");
// deinitialise peripherals
diff --git a/ports/esp8266/main.c b/ports/esp8266/main.c
index 975262fd1..7e5034b04 100644
--- a/ports/esp8266/main.c
+++ b/ports/esp8266/main.c
@@ -88,6 +88,7 @@ STATIC void mp_reset(void) {
}
void soft_reset(void) {
+ gc_sweep_all();
mp_hal_stdout_tx_str("PYB: soft reboot\r\n");
mp_hal_delay_us(10000); // allow UART to flush output
mp_reset();
diff --git a/ports/stm32/main.c b/ports/stm32/main.c
index 19c77453f..c018d2de2 100644
--- a/ports/stm32/main.c
+++ b/ports/stm32/main.c
@@ -756,5 +756,7 @@ soft_reset_exit:
pyb_thread_deinit();
#endif
+ gc_sweep_all();
+
goto soft_reset;
}
diff --git a/ports/unix/main.c b/ports/unix/main.c
index b68fe9279..1cf237a2b 100644
--- a/ports/unix/main.c
+++ b/ports/unix/main.c
@@ -647,6 +647,10 @@ MP_NOINLINE int main_(int argc, char **argv) {
}
#endif
+ #if defined(MICROPY_UNIX_COVERAGE)
+ gc_sweep_all();
+ #endif
+
mp_deinit();
#if MICROPY_ENABLE_GC && !defined(NDEBUG)