From 8e71d5e33f1d2a71f5f301da7b7eef621295749f Mon Sep 17 00:00:00 2001 From: Alexander Bushnev Date: Tue, 28 Jan 2025 17:05:30 +0100 Subject: [PATCH] Fix transport tasks cleanup --- src/system/espidf/system.c | 1 + src/system/rpi_pico/system.c | 1 + src/transport/common/transport.c | 2 ++ 3 files changed, 4 insertions(+) diff --git a/src/system/espidf/system.c b/src/system/espidf/system.c index 8f6c79c72..bde98b74d 100644 --- a/src/system/espidf/system.c +++ b/src/system/espidf/system.c @@ -129,6 +129,7 @@ z_result_t z_task_cancel(_z_task_t *task) { void _z_task_free(_z_task_t **task) { z_free((*task)->join_event); z_free(*task); + *task = NULL; } /*------------------ Mutex ------------------*/ diff --git a/src/system/rpi_pico/system.c b/src/system/rpi_pico/system.c index 7969b65a3..5b1d30044 100644 --- a/src/system/rpi_pico/system.c +++ b/src/system/rpi_pico/system.c @@ -115,6 +115,7 @@ z_result_t _z_task_cancel(_z_task_t *task) { void _z_task_free(_z_task_t **task) { z_free((*task)->join_event); z_free(*task); + *task = NULL; } /*------------------ Mutex ------------------*/ diff --git a/src/transport/common/transport.c b/src/transport/common/transport.c index 433a6a1b1..fa600ac90 100644 --- a/src/transport/common/transport.c +++ b/src/transport/common/transport.c @@ -29,6 +29,7 @@ void _z_common_transport_clear(_z_transport_common_t *ztc, bool detach_tasks) { } else { _z_task_join(ztc->_read_task); } + _z_task_free(&ztc->_read_task); z_free(ztc->_read_task); ztc->_read_task = NULL; } @@ -39,6 +40,7 @@ void _z_common_transport_clear(_z_transport_common_t *ztc, bool detach_tasks) { } else { _z_task_join(ztc->_lease_task); } + _z_task_free(&ztc->_lease_task); z_free(ztc->_lease_task); ztc->_lease_task = NULL; }