summaryrefslogtreecommitdiff
path: root/common_modules/module_lib/src/txm_module_object_deallocate.c
diff options
context:
space:
mode:
authorFrédéric Desbiens <[email protected]>2026-10-02 10:42:44 -0400
committerGitHub <[email protected]>2026-10-02 10:42:44 -0400
commit93387b0a60382a29579bbad5045c68328e3751df (patch)
tree42be790d602cb76f55090e5a7c418df7ea2b3428 /common_modules/module_lib/src/txm_module_object_deallocate.c
parent44d7c95c582d415c4ad84527180b29c93c3bf664 (diff)
parent28281cd5647d4671236ca08d19bd18ed15b2265a (diff)
Merge pull request #783 from eclipse-threadx/devv6.5.2.202603_rel
Merged changes ahead of the v6.5.2.202603 release
Diffstat (limited to 'common_modules/module_lib/src/txm_module_object_deallocate.c')
-rw-r--r--common_modules/module_lib/src/txm_module_object_deallocate.c30
1 files changed, 29 insertions, 1 deletions
diff --git a/common_modules/module_lib/src/txm_module_object_deallocate.c b/common_modules/module_lib/src/txm_module_object_deallocate.c
index c0ffb097..fa5ebe85 100644
--- a/common_modules/module_lib/src/txm_module_object_deallocate.c
+++ b/common_modules/module_lib/src/txm_module_object_deallocate.c
@@ -9,6 +9,8 @@
* SPDX-License-Identifier: MIT
**************************************************************************/
+// Portions of this file were generated with AI assistance.
+
/**************************************************************************/
/**************************************************************************/
@@ -23,6 +25,31 @@
#define TXM_MODULE
#include "txm_module.h"
#ifndef TXM_MODULE_OBJECT_DEALLOCATE_CALL_NOT_USED
+
+/* DEPRECATION NOTICE
+ * txm_module_object_deallocate() is deprecated and must not be used in new
+ * code. It is retained only for backward-compatibility with existing modules.
+ *
+ * WHY: when a module calls tx_timer_delete(), tx_semaphore_delete(), or any
+ * other tx_*_delete() service, the Module Manager dispatch layer automatically
+ * releases the associated object pool memory after the kernel cleanup
+ * completes. No separate deallocation call is required or expected.
+ *
+ * WHAT TO DO: remove any call to txm_module_object_deallocate() from your
+ * module. The corresponding tx_*_delete() call already handles everything.
+ *
+ * BEHAVIOUR: calling txm_module_object_deallocate() on a live kernel object
+ * (one whose tx_*_delete() has not yet been called) returns TX_DELETE_ERROR
+ * and changes nothing. The Module Manager will not release the memory of a
+ * created object, because the kernel goes on using those bytes as a control
+ * block after the byte pool has handed them to somebody else. Storage that
+ * was allocated but never made into an object is still released, so cleaning
+ * up after a create that failed or was abandoned still works.
+ */
+#pragma message("txm_module_object_deallocate() is deprecated and must not be used. " \
+ "Call tx_*_delete() instead; the Module Manager dispatch layer " \
+ "releases pool memory automatically on success. Deallocating a " \
+ "live kernel object returns TX_DELETE_ERROR.")
/**************************************************************************/
/* */
/* FUNCTION RELEASE */
@@ -43,7 +70,8 @@
/* */
/* OUTPUT */
/* */
-/* status Completion status */
+/* status Completion status, TX_DELETE_ERROR*/
+/* if a live object is there */
/* */
/* CALLS */
/* */