From 0601c4b6bfc4e28764b21e4d2b017cd46695ecc6 Mon Sep 17 00:00:00 2001 From: Andrey Gusakov Date: Sat, 11 Jan 2025 11:15:16 +0300 Subject: [PATCH] mmc_card: no zombie threads please --- firmware/hw_layer/mmc_card.cpp | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/firmware/hw_layer/mmc_card.cpp b/firmware/hw_layer/mmc_card.cpp index e64a554eb1..668ce5211e 100644 --- a/firmware/hw_layer/mmc_card.cpp +++ b/firmware/hw_layer/mmc_card.cpp @@ -570,19 +570,25 @@ static THD_FUNCTION(MMCmonThread, arg) { chThdSleepMilliseconds(300); #endif - if (!mountMmc()) { + if (mountMmc()) { + #if EFI_TUNER_STUDIO + engine->outputChannels.sd_logging_internal = true; + #endif + + if (engineConfiguration->sdTriggerLog) { + sdTriggerLogger(); + } else { + mlgLogger(); + } + } else { // no card present (or mounted via USB), don't do internal logging - return; } - #if EFI_TUNER_STUDIO - engine->outputChannels.sd_logging_internal = true; - #endif + efiPrintf("SD logger has died!"); - if (engineConfiguration->sdTriggerLog) { - sdTriggerLogger(); - } else { - mlgLogger(); + // exiting thread will create zombie! + while(1) { + chThdSleepMilliseconds(100); } }