From 2d1fa1c896d7bc22b378ef142afcefeb3b142bbc Mon Sep 17 00:00:00 2001 From: Rudy Celekli <47457359+rudycelekli@users.noreply.github.com> Date: Mon, 5 Oct 2026 11:59:06 -0400 Subject: [PATCH] Handle queue and task allocation failures before starting sensor work Signed-off-by: Rudy Celekli <47457359+rudycelekli@users.noreply.github.com> --- engineering/engineering-embedded-firmware-engineer.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/engineering/engineering-embedded-firmware-engineer.md b/engineering/engineering-embedded-firmware-engineer.md index 896bca3c..91265956 100644 --- a/engineering/engineering-embedded-firmware-engineer.md +++ b/engineering/engineering-embedded-firmware-engineer.md @@ -60,7 +60,16 @@ static void sensor_task(void *arg) { void app_main(void) { sensor_queue = xQueueCreate(8, sizeof(sensor_data_t)); - xTaskCreate(sensor_task, "sensor", TASK_STACK_SIZE, NULL, TASK_PRIORITY, NULL); + if (sensor_queue == NULL) { + // Never start a task that will send to an invalid queue. + return; // Report allocation failure through the application's fault path. + } + if (xTaskCreate(sensor_task, "sensor", TASK_STACK_SIZE, NULL, + TASK_PRIORITY, NULL) != pdPASS) { + vQueueDelete(sensor_queue); + sensor_queue = NULL; + return; // No task owns the queue; release it before reporting the fault. + } } ```